Каким тегом указывается режим документа согласно которому браузер отобразит его
Настало время рассмотреть на примере простейший HTML-документ. Мы напишем код, результатом работы которого является вывод в окне браузера фразы «Hello, world!» (в дословном переводе с англ. - «Здравствуй, мир!»). Обычно такая практика написания кода является первым опытом при изучении нового языка. Такая постановка задачи обращает внимание учащегося сразу на несколько ключевых моментов языка программирования (в нашем случае языка разметки), главным из которых является базовая структура программы (в нашем случае веб-страницы).
doctype
Каждый HTML документ, отвечающий спецификации HTML какой-либо версии (мы будем указывать последнюю версию), обязан начинаться со строки декларации версии HTML, делается это с помощью объявления следующим образом:
Эта строка поможет браузеру определить, как правильно интерпретировать код полученной веб-страницы. В данном случае мы говорим браузеру, что HTML соответствует последнему стандарту спецификации.
Хотя слово doctype размещается в угловых скобках (< и >), оно не является тегом, это инструкция, предназначенная специально для браузеров, и восклицательный знак (!) в начале отличает ее от остального кода в HTML-документе.
Элемент html
После объявления версии и типа документа необходимо обозначить его начало и конец, делается это с помощью элемента :
Это элемент также называют корневым, потому что все остальные элементы документа располагаются в нем. Корневой элемент может иметь только два дочерних элемента: и .
Элемент head
Элемент является контейнером для других элементов, которые предоставляют информацию о документе, известную как метаданные. Эти метаданные сообщают браузеру о местонахождении внешних скриптов и таблиц стилей, устанавливая отношение между текущим документом и другими ресурсами, и могут предоставлять дополнительные данные, предназначенные для браузеров. Помимо обязательного элемента , рассматриваемого далее в этой главе, браузеры не отображают никакие метаданные, находящиеся внутри элемента .
Элемент должен быть первым дочерним элементом , никакое содержимое или элементы не должны располагаться перед ним:
Элемент title
Элемент предоставляет текстовый заголовок для документа. Каждый HTML-документ должен иметь ровно один элемент , который должен располагаться внутри элемента :
Браузеры отображают содержимое элемента как заголовок (имя) документа, который обычно отображается вверху окна браузера или в названии вкладки:
Элемент body
Вот и все! Начало положено – вы получили прекрасную заготовку. Вот так будет выглядеть готовая структура документа с выводом в окне браузера фразы «Hello, world!»:
С этой темой смотрят:
Эта статья — шпаргалка по HTML-тегам. Поэтому не будем разглагольствовать, сразу к делу.
Тег abbr определяет аббревиатуру или акроним. Аббревиатура или акроним расшифровываются с помощью атрибута title .
abbr часто используется совместно с тегом dfn , идентифицирующим понятие или термин:
address
Тег address определяет контактную информацию об авторе или владельце документа или статьи. Контактная информацию может включать в себя адрес электронной почты, адрес сайта, физический адрес, номер телефона, ссылки на аккаунты в социальных сетях и т.д.
audio
Тег audio используется для встраивания аудио-контента (музыка и др.) в веб-страницу.
Для определения аудио-источника используется либо атрибут src , либо тег source . Последний используется для определения нескольких источников, из которых браузер выбирает наиболее подходящий (для определения типа аудио-контента используется атрибут type ).
В настоящее время поддерживается три формата аудио: MP3 , WAV и OGG .
- autoplay — автовоспроизведение (блокируется большинством браузеров)
- controls — панель управления (без этого атрибута элемент audio , скорее всего, не будет отображаться на странице)
- loop — определяет, что воспроизведение, после завершения, начнется сначала
- muted — воспроизведение без звука (позволяет преодолеть блокировку autoplay )
- preload — определяет, должен ли аудио-контент загружаться после загрузки страницы. Возможные значения: auto , metadata , none . Значение none не позволит работать с аудио с помощью JavaScript
- src — путь к аудиофайлу
video
Тег video используется для встраивания видео-контента (видеоклип и др.) в веб-страницу.
Для определения видео-источника используется либо атрибут src , либо тег source . Последний используется для определения нескольких источников, из которых браузер выбирает наиболее подходящий (для определения типа видео-контента используется атрибут type ).
Текст между отображается только в случае, когда браузер не поддерживает элемент video .
В настоящее время поддерживается три формата видео: MP4 , WebM и OGG .
- autoplay — автовоспроизведение (блокируется большинством браузеров)
- controls — панель управления
- loop — определяет, что воспроизведение, после завершения, начнется сначала
- muted — воспроизведение без звука (позволяет преодолеть блокировку autoplay )
- preload — определяет, должен ли видео-контент загружаться после загрузки страницы. Возможные значения: auto , metadata , none . Значение none не позволит работать с видео с помощью JavaScript
- src — путь к видеофайлу
- poster — изображение, отображаемое при загрузке видео или до нажатия пользователем кнопки воспроизведения
- width — ширина элемента в пикселях
- height — высота элемента в пикселях
DOM API предоставляет множество свойств, методов и событий для работы с элементами audio и video .
Тег base определяет основной путь ( URL ) и/или цель ( target ) для всех относительных путей в документе. Он должен размещаться в теге head и иметь хотя бы один из следующих атрибутов:
- href — основной путь
- target — определяет значение по умолчанию атрибута target всех гиперссылок и форм на странице. Возможные значения: _blank , _parent , _self и _top
blockquote и cite
Тег blockquote определяет раздел страницы, заимствованный из другого источника. Источник указывается в атрибуте cite .
Тег cite определяет название какой-либо работы (книги, стихотворения, песни, фильма, картины, скульптуры и т.д.). Он также может представлять из себя ссылку на источник цитаты.
Тег code используется для определения части компьютерного кода:
Для форматирования блока кода code часто используется совместно с тегом pre :
datalist
Тег datalist определяет список возможных вариантов для заполнения поля для ввода текста. Он позволяет реализовать "автозавершение" для элемента input : при установке фокуса на такое поле пользователь видит выпадающий список.
Атрибут id тега datalist должен совпадать с атрибутом list тега input .
Свойство options объекта Datalist возвращает коллекцию всех элементов списка.
dl , dt и dd
Тег dl определяет список описаний (определений, извиняюсь за тавтологию). Он используется совместно с тегами dt , определяющим понятие или термин, и dd , определяющим описание термина.
Внутри dd могут размещаться параграфы, изображения, ссылки, списки и т.д.
details
Тег details определяет раскрывающийся список с дополнительной информацией. Он часто используется для создания интерактивных виджетов, которые можно открывать и закрывать без использования JavaScript . В открытом состоянии он расширяется и показывает скрытый контент.
По умолчанию details находится в закрытом состоянии.
Внутри details могут размещаться любые теги.
Для отображения заголовка details используется тег summary .
Индикатором открытого состояния details является атрибут open (этот атрибут может использоваться в качестве CSS-селектора — details[open] или JavaScript-селектора — document.querySelector('[open]') ).
dialog
Тег dialog определяет диалоговое окно. Он используется для создания "попапов" и модальных окон.
По умолчанию dialog находится в неактивном состоянии.
Индикатором активного состояния dialog является атрибут open .
Для управления объектом Dialog с помощью JavaScript используются такие методы как show() , close() и showModal() , а также свойство open .
figure
Тег figure определяет обособленный (автономный) контент, такой как иллюстрации, диаграммы, фотографии, примеры кода и т.д.
Несмотря на то, что контент элемента figure формально относится к основному потоку (main flow), его позиция (местонахождение) не зависит от этого потока. Поэтому удаление элемента figure не должно влиять на поток документа.
Для добавление подписи к figure используется тег figcaption .
meter
Тег meter определяет скалярное значение в пределах известного диапазона или дробного значения. Другими словами, meter определяет меру чего-либо (gauge).
Этот тег не должен использоваться в качестве индикатора прогресса.
Для обеспечения доступности совместно с meter рекомендуется использовать тег label .
- value — текущее числовое значение между min и max
- min — нижняя числовая граница диапазона
- max — верхняя числовая граница диапазона
- low — верхняя числовая граница нижнего предела диапазона. Должна быть больше min , но меньше high и max
- high — нижняя числовая граница верхнего предела диапазона
- optimum — оптимальное числовое значение между min и max . Расположение этого атрибута определяет предпочтительную часть диапазона. Например, если optimum находится между min и low , значит, предпочтительным является нижний диапазон
- form — определяет элемент form , с которым связан meter
Так можно записать уровень заряда батареи вашего устройства в значение meter :
progress
Тег progress определяет процесс выполнения задачи.
Этот тег не должен использоваться для определения меры чего-либо.
Для обеспечения доступности совместно с progress рекомендуется использовать тег label .
- max — максимальное значение. По умолчанию равняется 1
- value — текущее значение
Так можно реализовать десятисекундный таймер:
output
Тег output используется для представления результата вычислений.
- for — определяет связь между результатом и элементами, используемыми для его выичсления
- form — определяет элемент form , которому принадлежит output
- name — название элемента output
picture
Тег picture предоставляет возможность использования нескольких источников для изображения (нескольких изображений).
Этот тег позволяет использовать разные изображения в зависимости от ширины области просмотра (viewport width) вместо масштабирования одного изображения.
Элемент picture содержит два тега: один или более source и один img .
Браузер выбирает элемент source с медиа-запросом, совпадающим с текущей шириной области просмотра. Элемент img указывается в качестве последнего дочернего элемента на случай отсутствия совпадений с source .
Путь к изображению указывается в атрибуте srcset , а медиа-запрос — в атрибуте media .
template
Тег template используется в качестве контейнера для разметки, которая не отображается при загрузке страницы.
Этот тег предназначен для хранения разметки, которая используется часто, но в определенных случаях (по запросу).
Контент внутри template может быть отрендерен с помощью JavaScript .
Тег time определяет конкретное время (или дату и время).
Атрибут datetime используется для представления времени в машиночитаемом формате.
noscript
Тег noscript определяет резервный контент, который отображается в случае, если в браузере отключен JavaScript . Он может использоваться как в теге head , так и в теге body . В первом случае noscript может содержать только такие теги как link , style и meta .
Другие теги в форме шпаргалок
Семантическое "секционирование" страницы
Стилизация текста
Форма
Символ / означает или .
Поля для ввода данных
- accept — MIME-тип принимаемых файлов (только для type="file" ). Значения: расширение, например, .jpg , audio/* , video/* , image/* , медиа тип, например, json
- alt — подпись
- autocomplete — on / off
- autofocus
- checked — только для type="checkbox" или type="radio"
- disabled
- form
- formaction — только для type="submit" или type="image"
- formenctype — только для type="submit" или type="image" . Значения: application/x-www-form-urlencoded , multipart/form-data , text/plain
- formmethod — только для type="submit" или type="image" ( get / post )
- formnovalidate — отключает проверку элементов формы
- formtarget — определяет, где отображается ответ, полученный после отправки формы (только для type="submit" или type="image" ). Значения: _blank , _self , _parent , _top , название фрейма
- height — высота в пикселях (только для type="image" )
- list
- max — максимальное значение (число или дата)
- maxlength — максимальная длина строки (количество символов)
- min — минимальное значение (число или дата)
- minlength — минимальная длина строки (количество символов)
- multiple — позволяет пользователю выбирать несколько значений или отправлять несколько файлов
- name
- pattern — регулярное выражение для проверки значения поля
- placeholder
- readonly
- required
- size — количество символов, определяющее ширину поля
- src — путь к изображению, используемому в качестве кнопки для отправки формы (только для type="image" )
- step — интервал (шаг) между min и max
- type
- value
- width — ширина поля в пикселях (только для type="image" )
Пример валидации адреса электронной почты и пароля:
Таблица
Теги colgroup и col могут использоваться для стилизации определенных колонок таблицы целиком вместо стилизации каждой ячейки и строки по отдельности.
Послесловие
Мы рассмотрели почти все существующие HTML-теги. С полным списком можно ознакомиться здесь или здесь. Во многих публикациях упоминаются теги map и area , но с их использованием сопряжено несколько проблем (сложность реализации карты, зависимость областей от координат и т.д.), поэтому я оставил их без внимания. Также существуют такие теги, как svg и canvas , предназначенные для работы с графикой, но для рассказа о каждом из них требуется отдельная статья (и даже не одна).
Наши виртуалки можно использовать для разработки веб-сайтов.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
На собеседовании многие начинающие (и не только) претенденты на позиции, связанные с HTML, неожиданно понимают, что не могут ответить на одни и те же типовые, и казалось бы, элементарные вопросы. Но ведь когда-то этому должен настать конец? Думаю, ответ на этот вопрос вы точно знаете.
Вопросы и ответы
Что такое HTML?
HTML расшифровывается как HyperText Markup Language (язык гипертекстовой разметки). Это язык разметки документов во Всемирной паутине (World Wide Web, WWW). HTML — это стандартизированный язык, позволяющий составлять форматированный текст. Браузер интерпретирует его и отображает на экране элементы веб-страниц.
Из чего состоит форматированный текст HTML?
В первую очередь, HTML — это контент и теги. Теги позволяют задать способ отображения контента на веб-страницах.
Что такое HTML-тег?
Тег — это специальное служебное слово, заключенное в угловые скобки. Его ещё называют «элемент HTML». Тегов в языке HTML много и каждый что-то делает с контентом, который обычно находится внутри скобок или между тегами.
Если тег парный, то тегу <ТЕГ>соответствуетТЕГ> .
Парными являются все теги?
Нет, не все. Существуют одиночные теги, например, — для изображений. В этом случае контент вместе с другими служебными словами (например, для это может быть src=”url изображения”) размещается между скобками, но после слова img.
Какие основные виды списков применяют при создании веб-страницы?
При создании веб-страницы можно использовать:
- Menu list (список меню — ).
- Directory list (список директорий — ).
- Ordered list (нумерованный список —
-
).
- Unordered list (маркированный список — ).
- Definition list (список определений — ).
Зачем использовать списки в HTML?
Списки делают информацию более наглядной и удобной для восприятия. Более того, внутри списков (точнее, для произвольного отображения элементов списка) тоже можно использовать различные теги.
Можем ли мы писать комментарии в HTML-коде? Как?
Почему некоторые символы на веб-странице иногда отображаются некорректно?
Чаще всего символы отображаются некорректно из-за проблем с кодировкой. То есть причина — в настройках браузера или веб-сервера.
Что такое Image Map?
В HTML Image Map — это технология, которая позволяет привязывать ссылки к фрагментам изображения. Щелкая мышью на отдельных частях изображения, пользователь может переходить по той или иной ссылке на разные веб-страницы.
Что такое white-space?
White-space — это свойство, позволяющее менять количество пробелов между словами при отображении веб-страницы. По умолчанию любое количество пробелов в HTML-коде браузер интерпретирует как один пробел.
В чём главное преимущество white-space?
При написании HTML-кода разработчику не нужно беспокоиться о лишних пробелах, которые он мог ввести: браузер при отображении веб-страницы уберёт все лишние пробелы.
Разработчик может добавлять в код пробелы не только случайно, но и специально: чтобы код стал более читабельным.
Можно ли присваивать значения не всем атрибутам тега?
Да, в этом случае браузер будет использовать значения по умолчанию. Если вас не устраивает то, как он отобразил веб-страницу, то, возможно, следует явно указать значения некоторых атрибутов.
Как разместить знак copyright на веб-странице, ведь его нет на клавиатуре?
Как создать ссылки на разные фрагменты (разделы) одной и той же веб-страницы?
Можем ли мы выравнивать элементы списка в HTML-файле?
Да, мы можем хранить элементы списка прямо в HTML-файле используя отступы. Отступ можно также использовать для любого вложенного списка внутри родительского.
Адрес какой веб-страницы обычно считается адресом сайта?
Обычно это одна из страниц верхнего уровня, главная страница. Из неё пользователь переходит на страницы, расположенные на более низких уровнях. И их адрес чаще всего формируется на основе адреса главной страницы.
Зачем мы используем альтернативный текст (атрибут alt тега ) для изображений?
Альтернативный текст отображается при отключенной загрузке графики в браузере пользователя или в случае проблемы при загрузке конкретного изображения. Этот текст даёт понять, что должно было быть изображено на этой картинке.
Могут ли файлы HTML хорошо работать в каком-нибудь редком или ультрасовременном браузере?
Конечно, файлы HTML могут и должны хорошо работать в любом браузере, потому что браузер должен соответствовать стандартам HTML. Если разработчики решили не поддерживать некоторые функции стандарта, это остаётся на их совести.
Как вы думаете гиперссылка может быть только текстовой?
Нет, гиперссылка может быть не только текстовой, но и, например, графической. Это означает, что мы можем преобразовать изображение в ссылку, которая направит пользователя на другую страницу. Гиперссылка вообще не зависит от типа контента, который лежит «под ней».
Что из себя представляют атрибуты тега < li>— элемента списка?
- type устанавливает вид маркера нумерованного или маркированного списка;
- value — число, с которого будет начинаться нумерованный список.
Для чего нужны таблицы стилей (CSS)?
Таблицы стилей позволяют задать чёткие правила, которые определяют внешний вид контента, тех или иных HTML-элементов и всей страницы в целом. Более того, одни и те же правила можно применять сразу к нескольким веб-страницам, что упрощает сохранение и, при необходимости, изменение единого стиля сайта.
Какие типы нумерации в списках вы знаете?
В качестве нумерующих элементов могут выступать следующие значения:
- арабские числа (1, 2, 3, . );
- прописные латинские буквы (A, B, C, . );
- строчные латинские буквы (a, b, c, . );
- прописные римские числа (I, II, III, . );
- строчные римские числа (i, ii, iii, . ).
Как задать разные цвета для фрагментов текста веб-страницы?
Чтобы задать разные цвета для фрагментов текста, нужно поместить каждый из фрагментов внутрь парного тега font:
Где хранятся числовые коды символов в HTML?
В таблице ASCII. При отображении веб-страницы браузер берет числовые коды символов из HTML-документа и заменяет их на соответствующий символ из таблицы.
Каковы преимущества группировки нескольких флажков (элементов checkbox)?
Есть несколько преимуществ группировки флажков:
- это помогает лучше организовать, структурировать их;
- это позволяет обращаться к конкретным флажкам из группы, используя id;
- это позволяет создать другую группу флажков на этой же веб-странице, не боясь перепутать названия или идентификаторы флажков.
Как перекрытие тегов влияет на отображение контента?
Перекрытие тегов в HTML приводит к распознаванию только первого тега. Но такие проблемы возникают только тогда, браузер пытается распознать теги без текста.
Если между тегами нет текста, каков будет результат? Приведите пример?
Если между тегами нет текста, то контент будет невозможно отформатировать. Например, одиночные теги, такие как < img>, не требуют ввода текста, и, следовательно, в таком случае форматирование не потребуется.
Как указать цвета для границ таблицы?
Можем ли мы создать ссылку, которая ведет на другую веб-страницу?
Могут ли таблицы стилей помочь выровнять изображение и задать способ позиционирования текста относительно него?
Может ли одна гиперссылка вести на разные страницы?
Есть ли разница между маркированным списком и списком директорий и меню?
Да, разница заключается в том, что неупорядоченный список имеет атрибуты для изменения стиля маркера.
Как изменить цвет маркера?
Можно ли ввести какие-то ограничения на размер текстовых полей в HTML?
Стандартный размер составляет 20-25 символов. Но используя атрибуты size или maxsize, можно задать другие ограничения. Например:
Чем ограничен максимальный размер текстового поля?
Что будет, если установить нулевой размер текстового поля?
Каковы сходства между атрибутами border и rules?
Что такое marquee? Как мы можем применить это?
Marquee помогает в настройке прокрутки текста на веб-странице. Чтобы активировать прокрутку, вам нужно использовать тег .
Что делает тег
?
Есть ли другой способ разделить текст без использования
?
Да, существуют другие способы разделения текста. Можно использовать тег
или тег .
Может ли текст отображаться вне окна браузера?
По умолчанию текст не может отображаться за пределами браузера, но, если текст является частью ячейки таблицы с предварительно определённой шириной, то он может выходить за пределы окна браузера.
В чем разница между активными и неактивными ссылками?
Активная ссылка имеет фокус, то есть на неё наведена мышь. В остальных случаях фокус находится где-то в другом месте.
Имеет ли таблица стилей ограничения по количеству правил?
Нет, таблицы стилей не ограничивают количество правил для селектора. Однако каждое новое правило необходимо отделять от других с помощью точки с запятой.
Есть у таблиц стилей какая-либо иерархия правил?
Да, существует иерархия, которая включает в себя четыре уровня (от самого приоритетного к наименее приоритетному):
Можем ли мы сгруппировать разные селекторы с разными именами классов?
Можно ли подключить внешний файл CSS в браузере?
Может ли свойство list-style-type влиять на абзац?
Что такое элемент canvas?
Элемент HTML5 canvas можно использовать для вставки изображений, градиентов и комплексной анимации. Он также может помочь в создании 2D-изображений непосредственно внутри исходного кода HTML-документа.
Вывод
Приведенные выше ответы на вопросы могут дать вам представление о том, что у вас могут спросить. Вы можете преодолеть страх и обрести уверенность, что поможет вам получить желаемую работу. Ответы, изложенные выше, в основном достаточно чёткие и короткие. Но этого достаточно, чтобы интервьюер понял, что кандидат в теме.
Заключение
Общение с людьми, которые недавно проходили собеседования, а также ответы на вопросы, изложенные выше, помогут вам позиционировать себя как более достойного кандидата и повысить свои шансы на оффер.
Решил проводить регулярные лекции и практические занятия со своими сотрудниками по программированию на PHP, MySQL, Javascript. А также другим технологиям необходимым для выпуска качественных сайтов. Начать решил с самого «верха», с HTML тэгов. Буду рад, любым комментариям :)
Сразу оговорюсь, что бОльшая часть информации я нашел в интернете, внизу статьи будут приведены ссылки на источники. Часть информации была переведена совместно с google translate.
Итак:
Почему так важен DOCTYPE
Вроде бы вы сделали все правильно, но ваш сайт почему-то не выглядит или не работает, как ожидалось, в последних версиях броузеров.
Вы написали правильный стандартный XHTML код и стандартный CSS. Вы воспользовались стандартной спецификацией для работы с DOM (Document Object Model), чтобы управлять динамическими элементами на странице. И все-таки, в броузерах, которые казалось бы сделаны с соблюдением именно этих стандартов, ваш сайт не работает. Скорей всего, ошибка кроется в неправильном заголовке DOCTYPE.
Эта небольшая статья расскажет вам о заголовках DOCTYPE, которые работают, а также объяснит практическое и теоретическое значение этого, казалось бы отвлеченного от реальности, тега.
Что такое DOCTYPE?
Согласно спецификациям HTML и XHTML тег DOCTYPE (что означает «объявление типа документа») сообщает валидатору, какую именно версию (X)HTML вы используете в своей странице. Этот тег должен всегда находиться в первой строке каждой страницы. Тег DOCTYPE — ключевой компонент web-страниц, претендующих на соответствие стандартам: без него ваш код и CSS не пройдут проверку валидатором.
Тег DOCTYPE также важен для правильного отображения и работы страницы в броузерах, соответствующих стандартам (Mozilla, IE5/Mac, и IE6/Win).
Тег DOCTYPE, в атрибутах которого указывается полный URI (полный web-адрес), сообщает броузерам, что страницу нужно вывести с соблюдением определенного стандарта или подвида этого стандарта.
Если вы будете пользоваться неполным тегом DOCTYPE, устаревшим его видом, или вообще забудете про него, броузер перейдет в «загадочный» (quirk) режим и будет исходить из предположения, что вы писали код страницы с ошибками и вольно отступали от стандартов, т.е. так, как писали в конце 90-ых годов.
В этом режиме броузер попытается разобрать вашу страницу по правилам обратной совместимости и выведет на экран, например, CSS так, как его вывел бы Internet Explorer 4-ой версии, а DOM будет работать так, как он работал именно в этом броузере (IE переключается в свой старый DOM, а Mozilla и Netscape 6 переключается вообще в бог знает что).
Понятно, что для вас эти выкрутасы не желательны. Но именно это вы и получите, если будете пользоваться неполным или неправильным тегом DOCTYPE.
Проблема
Когда создавали NN4, IE4 выполняли правила CSS не совсем в соответствии со стандартом. Реализация Netscape была просто ужасной, IE4 подошел к реализации стандарта лучше, но тем не менее, реализовал его не до конца. Хотя IE 5 Windows исправил множество ошибок IE 4, но оставались другие сбои в CSS (в основном в модели окон (window model)).
Поэтому, когда соответствие стандартам стало важным, W3C поставил производителей браузеров перед жестким выбором.
Приблизится к спецификации W3C было одним из решений проблемы, но если бы производители браузеров просто изменили реализацию CSS, чтобы соответствовать стандартам полностью, многие веб-сайты, «поползли» бы в большей или меньшей степени или оказались полностью неработоспособными. Такое сближение с соблюдением стандарта повлекло бы за собой проблемы. С другой стороны, не приведение к соответствию стандартов могло бы внести вечную путаницу в эпоху войны браузеров.
Решение
- позволить веб-разработчикам, которые знали о стандартах, выбирать какой режим использовать.
- продолжать показывать старые страницы по старым (совместимым) правилам. (quirks mode)
Иными словами, всем браузерам необходимо было работать в двух режимах: режим совместимости для старых правил, и строгого режима для стандарта.
IE Mac был первым браузером использовавшим оба режима, а Windows IE 6, Mozilla, Safari, Opera и последовали его примеру.
IE 5 Windows, а также старые браузеры, как Netscape 4, постоянно заблокированы в режиме совместимости.
Решение о выборе, какой режим отображения требуется вызвать, было найдено в использовании «DOCTYPE» переключения. Согласно стандартам, любой (X) HTML документ должен иметь DOCTYPE который рассказывает всему миру, какой тип (X) HTML документа он использует.
Допустимые DTD
DOCTYPE | Описание |
HTML 4.01 | |
Строгий синтаксис HTML. | |
Переходный синтаксис HTML. | |
В HTML-документе применяются фреймы. | |
XHTML 1.0 | |
Строгий синтаксис XHTML. | |
Переходный синтаксис XHTML. | |
Документ написан на XHTML и содержит фреймы. | |
XHTML 1.1 | |
Разработчики XHTML 1.1 предполагают, что он постепенно вытеснит HTML. Никакого деления на виды это определение не имеет, синтаксис один и подчиняется четким правилам. |
HTML 4.01 DTDs
- HTML 4.01 Strict — Не разрешает презентационной (оформительской) разметки, аргументируя тем, что этоим должен заниматься CSS.
- Transitional DTD позволяет некоторые устаревшие аттрибуты и элементы
- Если используются фреймы — должен быть использован frameset doctype
XHTML 1.0 DTDs
- XHTML Strict DTD самый строгий существующий DTD: устаревшие (см ниже) теги не поддерживаются, и код должен быть написан правильно
- XHTML Transitional DTD такой же как XHTML Strict DTD, но старые теги разрешены. Это НАИБОЛЕЕ ПОПУЛЯРНЫЙ в настоящий момент DTD.
- XHTML Frameset DTD единственный XHTML DTD который поддерживает фреймы.
XHTML 1.1 DTD
Это новый DTD, который имеет строгость как у XHTML 1.0 Strict, и основан на фреймворке и модулях описанных в Modularization of XHTML (не стал искать что это такое :).
Статистика использования различных DTD
Получается что Более 50% сайтов работают в режиме quirk mode — то есть в режиме IE4!
Устаревшие тэги и аттрибуты
Устаревшие тэги в алфавитном порядке
Устаревшие HTML / XHTML аттрибуты тегов. Все они могут быть заменены CSS стилями.
Разница между HTML и XHTML (указаны правила для XHTML)
- Тэги должны быть написаны в нижнем регистре, вместо , как это было в HTML, нужно писать:
- Все теги должны закрываться, или с использованием тэга со слешем в паре, как параграф ( ) например, или самозакрывающиеся тэги, как например (
). - Все теги должны быть правильно вложены друг в друга, без перекрытий
- Не должны использоваться устаревшие теги
- Все аттрибуты должны быть набраны в нижем регистре
- Все значение аттрибутов должны быть заключены в одинарные или двойные кавычки
- Все аттрибуты должны использоваться в длинной форме, а не в короткой: disabled="disabled" в XHTML против DISABLED в HTML
- Структура должна быть отделена от контента. Например тег
- это часть контента (параграф) и вы не можете поместить в него например таблицу, потому что таблица это часть структуры (форматирования).
Совместимость и IE8
ЭлементЭлемент предназначен для указания типа текущего документа — DTD (document type definition, описание типа документа). Это необходимо, чтобы браузер понимал, как следует интерпретировать текущую веб-страницу, поскольку HTML существует в нескольких версиях, кроме того, имеется XHTML (EXtensible HyperText Markup Language, расширенный язык разметки гипертекста), похожий на HTML, но различающийся с ним по синтаксису. Чтобы браузер «не путался» и понимал, согласно какому стандарту отображать веб-страницу и необходимо в первой строке кода задавать .
Существует несколько видов , они различаются в зависимости от версии языка, на которого ориентированы. В табл. 1. приведены основные типы документов с их описанием.
DOCTYPE | Описание |
---|---|
HTML 4.01 | |
Строгий синтаксис HTML. | |
Переходный синтаксис HTML. | |
В HTML-документе применяются фреймы. | |
HTML 5 | |
Для всех документов. | |
XHTML 1.0 | |
Строгий синтаксис XHTML. | |
Переходный синтаксис XHTML. | |
Документ написан на XHTML и содержит фреймы. | |
XHTML 1.1 | |
Разработчики XHTML 1.1 предполагают, что он постепенно вытеснит HTML. Никакого деления на виды это определение не имеет, синтаксис один и подчиняется четким правилам. |
Синтаксис
Параметры
Элемент верхнего уровня — указывает элемент верхнего уровня в документе, для HTML это тег .
Публичность — объект является публичным (значение PUBLIC ) или системным ресурсом (значение SYSTEM ), например, таким как локальный файл. Для HTML/XHTML указывается значение PUBLIC .
Организация — уникальное название организации, разработавшей DTD. Официально HTML/XHTML публикует W3C , это название и пишется в .
Тип — тип описываемого документа. Для HTML/XHTML значение указывается DTD .
Имя — уникальное имя документа для описания DTD.
Язык — язык, на котором написан текст для описания объекта. Содержит две буквы, пишется в верхнем регистре. Для документа HTML/XHTML указывается английский язык ( EN ).
URL — адрес документа с DTD.
Закрывающий тег
Пример 1. HTML 4.01
HTML 4.01 IE Cr Op Sa Fx
Пример 2. HTML 5
HTML5 IE Cr Op Sa Fx
Браузеры
Internet Explorer до версии 6.0 требует, чтобы стоял обязательно в первой строке кода. В противном случае браузер переходит в режим совместимости (quirk mode).
Хотя значение URL является не обязательным, браузеры при его отсутствии могут перейти в режим совместимости, поэтому всегда указывайте полный путь к DTD-файлу, как показано в табл. 1.
Читайте также: