
- •2. Создание статического содержания. 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. Создание статического содержания. 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) >
Начиная с первой строки:
Элемент <people_list> содержит любое число элементов <person> . Знак <*> означает, что возможно 0, 1 или более элементов <person> внутри элемента <people_list>.
Элемент <person> содержит элементы <name>, <birthdate>. Знак <?> означает, что элемент необязателен. Элемент <name> не содержит <?>, что означает, что элемент <person> обязательно должен содержать элемент <name>.
Элемент <name> содержит данные.
Элемент <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-технологии по ряду причин:
Используется отличный от XML синтаксис.
Отсутствует типизация узлов.
Отсутствует поддержка пространств имен.
На смену 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> и без него. Чтобы не произошло подобных ситуаций, необходимо всегда добавлять этот тег в начало документа.