Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
202
Добавлен:
10.05.2015
Размер:
1.05 Mб
Скачать

2. Создание статического содержания. Html

Данная лекция освещает основы языка разметки HTML. Рассматривается структура HTML-документа, определение типа документа (DTD), основные теги. В конце лекции приводятся основные различия XHTML и HTML.

Содержание

  • 2.1. Основы языка разметки HTML

    • 2.1.1. Основные сведения

    • 2.1.2. Структура HTML-документа

    • 2.1.3. Состав HTML-документа

      • 2.1.3.1. Document Type Definition (DTD)

      • 2.1.3.2. Заголовок документа

        • 2.1.3.2.1. Метатеги

        • 2.1.3.2.2. Заголовок страницы

        • 2.1.3.2.3. Link

        • 2.1.3.2.4. Script

      • 2.1.3.3. Тело документа

        • 2.1.3.3.1. DIV

        • 2.1.3.3.2. Таблица

        • 2.1.3.3.3. Заголовки

        • 2.1.3.3.4. Ссылки

        • 2.1.3.3.5. Списки

        • 2.1.3.3.6. Абзацы

        • 2.1.3.3.7. Изображения

        • 2.1.3.3.8. Другие элементы

    • 2.1.4. Другие элементы языка HTML

    • 2.1.5. XHTML

    • 2.1.6. Ключевые термины

  • 2.2. Краткие итоги

2.1.3.1. Document Type Definition (dtd)

В первой строке объявляется Document Type Definition:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

DTD (Document Type Definition, определение типа документа) – язык описания структуры SGML-документа [10].

Пример очень простого XML DTD, описывающего список людей [10,12]:

<!ELEMENT people_list (person*)>

<!ELEMENT person (name, birthdate?)>

<!ELEMENT name (#PCDATA) >

<!ELEMENT birthdate (#PCDATA) >

Начиная с первой строки:

  1. Элемент <people_list> содержит любое число элементов <person> . Знак <*> означает, что возможно 0, 1 или более элементов <person> внутри элемента <people_list>.

  2. Элемент <person> содержит элементы <name>, <birthdate>. Знак <?> означает, что элемент необязателен. Элемент <name> не содержит <?>, что означает, что элемент <person> обязательно должен содержать элемент <name>.

  3. Элемент <name> содержит данные.

  4. Элемент <birthdate> содержит данные.

Пример XML-документа, использующего этот DTD:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE people_list SYSTEM "example.dtd">

<people_list>

<person>

<name>Иванов Иван Иванович</name>

<birthdate>22.03.1978</birthdate>

</person>

</people_list>

Сейчас идет отказ от использования DTD в XML-технологии по ряду причин:

  1. Используется отличный от XML синтаксис.

  2. Отсутствует типизация узлов.

  3. Отсутствует поддержка пространств имен.

На смену DTD пришел стандарт консорциума W3C XML Schema.

В примере !DOCTYPE предназначен для указания типа текущего документа – DTD.

Это необходимо, чтобы браузер понимал, как следует интерпретировать текущую веб-страницу, ведь HTML существует в нескольких версиях, кроме того, имеется XHTML (EXtensible HyperText Markup Language), похожий на HTML, но различающийся с ним по синтаксису. Чтобы браузер "не путался" и понимал, согласно какому стандарту отображать веб-страницу и необходимо в первой строке кода задавать <!DOCTYPE>.

Существует несколько видов <!DOCTYPE>, они различаются в зависимости от версии HTML, на которую ориентированы [11]. В табл. 2.1 приведены основные типы документов с их описанием.

Таблица 2.1. Основные виды DOCTYPE

DOCTYPE

Описание

HTML 4.01

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Строгий синтаксис HTML – не содержит элементов, помеченных как "устаревшие" или "не одобряемые"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Переходный синтаксис HTML –содержит устаревшие теги в целях совместимости и упрощения перехода со старых версий HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

В HTML-документе применяются фреймы – аналогичен переходному, но содержит также теги для создания наборов фреймов

XHTML 1.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Строгий синтаксис XHTML.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Переходный синтаксис XHTML.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Документ написан на XHTML и содержит фреймы.

XHTML 1.1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN">

Разработчики XHTML 1.1 предполагают, что он постепенно вытеснит HTML.

Разница между строгим и переходным описанием документа состоит в различном подходе к написанию кода документа [10]. Строгий HTML требует жесткого соблюдения спецификации HTML и не прощает ошибок, что обычно приводит к иному отображению документа, чем планировал разработчик. Переходный HTML более "спокойно" относится к некоторым огрехам кода, поэтому этот тип использовать предпочтительнее.

Часто можно встретить код HTML вообще без использования <!DOCTYPE>, веб-страница в подобном случае все равно будет показана. Тем не менее, может получиться, что один и тот же документ отображается по-разному при использовании <!DOCTYPE> и без него. Чтобы не произошло подобных ситуаций, необходимо всегда добавлять этот тег в начало документа.