stringtranslate.com

HTML-элемент

Элемент HTML — это тип компонента документа HTML (язык гипертекстовой разметки), один из нескольких типов узлов HTML (есть также текстовые узлы, узлы комментариев и другие). [ неопределенно ] Первая использованная версия HTML была написана Тимом Бернерсом-Ли в 1993 году, и с тех пор появилось множество версий HTML. Текущий стандарт де-факто регулируется отраслевой группой WHATWG и известен как «Живой стандарт HTML».

Документ HTML состоит из дерева простых узлов HTML , таких как текстовые узлы, и элементов HTML, которые добавляют семантику и форматирование к частям документа (например, делают текст жирным, организуют его в абзацы, списки и таблицы или встраивают гиперссылки ). и изображения). Для каждого элемента могут быть указаны атрибуты HTML . Элементы также могут иметь контент, включая другие элементы и текст.

Концепции

Категории содержимого элемента HTML

Элементы против тегов

Как обычно понимается, позиция элемента указывается как простирающаяся от начального тега и завершается конечным тегом. [1] Это относится ко многим, но не ко всем элементам HTML-документа. Это различие явно подчеркнуто в спецификации HTML 4.01 :

Элементы не являются тегами. Некоторые люди называют элементы тегами (например, «тег P»). Помните, что элемент — это одно, а тег (будь то начальный или конечный тег) — другое. Например, элемент HEAD присутствует всегда, хотя в разметке могут отсутствовать как начальный, так и конечный теги HEAD. [1]

Аналогично, в Рекомендации W3C HTML 5.1 2nd Edition прямо говорится:

Теги используются для разграничения начала и конца элементов в разметке. (...) Начальный и конечный теги некоторых обычных элементов могут быть опущены, (...)
Содержимое элемента должно быть помещено сразу после начального тега (который в некоторых случаях может подразумеваться ) и непосредственно перед ним. конечный тег (который, опять же, в некоторых случаях может подразумеваться ).

—  HTML 5.1, 2-е издание, § 8.1.2. Элементы § Теги

и:

Некоторые теги могут быть опущены .
ПРИМЕЧАНИЕ.
Отсутствие начального тега элемента (...) не означает, что элемент отсутствует; это подразумевается, но оно все еще существует. Например, документ HTML всегда имеет корневой <html>элемент, даже если строка <html>не встречается нигде в разметке.

—  HTML 5.1, 2-е издание, § 8.1.2.4. Дополнительные теги


Поскольку HTML (до HTML5) основан на SGML , [2] его анализ также зависит от определения типа документа (DTD) , в частности от HTML DTD (например, HTML 4.01 [3] [примечание 1] ). DTD определяет, какие типы элементов возможны (т. е. определяет набор типов элементов), а также допустимые комбинации, в которых они могут появляться в документе. Частью общего поведения SGML является то, что там, где возможна только одна допустимая структура (согласно DTD), ее явное указание в любом документе обычно не требуется. В качестве простого примера: тег, указывающий начало элемента абзаца, должен быть дополнен тегом, указывающим его конец. Но поскольку в DTD указано, что элементы абзаца не могут быть вложенными, фрагмент HTML-документа считается эквивалентным . (Если один элемент абзаца не может содержать другой, любой открытый в данный момент абзац должен быть закрыт перед началом другого.) Поскольку этот вывод основан на сочетании DTD и отдельного документа, обычно невозможно вывести элементы только из тегов документа , но только с помощью синтаксического анализатора, поддерживающего SGML или HTML, со знанием DTD. HTML5 создает аналогичный результат, определяя, какие теги можно опустить. [4]<p></p><p>Para 1 <p>Para 2 <p>Para 3<p>Para 1 </p><p>Para 2 </p><p>Para 3

SGML против XML

SGML сложен, что ограничивает его широкое понимание и внедрение. XML был разработан как более простая альтернатива. Хотя оба могут использовать DTD для указания поддерживаемых элементов и их разрешенных комбинаций в качестве структуры документа, анализ XML проще. Связь между тегами и элементами всегда заключается в анализе реальных тегов, включенных в документ, без подразумеваемых замыканий, которые являются частью SGML. [заметка 2]

HTML, используемый в текущей сети, скорее всего, будет рассматриваться либо как XML, будучи XHTML , либо как HTML5 ; в любом случае анализ тегов документа в элементы объектной модели документа (DOM) упрощается по сравнению с устаревшими системами HTML. После получения DOM элементов поведение на более высоких уровнях интерфейса (пример: рендеринг экрана) идентично или почти идентично. [заметка 3]

%block;против коробки

Частью поведения представления CSS является понятие « блочной модели ». Это применяется к тем элементам, которые CSS считает «блочными» элементами, заданными посредством объявления CSS.display: block;

HTML также имеет похожую концепцию, хотя и разную, и их очень часто путают. %block;и %inline;представляют собой группы в HTML DTD, которые группируют элементы как «блочные» или «встроенные». [6] Это используется для определения их поведения вложенности: элементы уровня блока не могут быть помещены во встроенный контекст. [примечание 4] Это поведение нельзя изменить; это исправлено в DTD. Блочные и встроенные элементы по умолчанию имеют соответствующие и разные варианты поведения CSS , [6] включая релевантность блочной модели для определенных типов элементов.

Однако обратите внимание, что это поведение CSS может быть изменено (и часто так и происходит) по сравнению с поведением по умолчанию. Списки содержат элементы и по умолчанию представлены как блочные элементы. Однако довольно часто их можно настроить с помощью CSS для отображения в виде встроенного списка. [7]<ul><li> ...%block;

Обзор

Синтаксис

Части элемента HTML-контейнера

В синтаксисе HTML большинство элементов записываются с начальным и конечным тегом, между которыми находится содержимое. HTML -тег состоит из имени элемента, заключенного в угловые скобки . Конечный тег также имеет косую черту после открывающей угловой скобки, чтобы отличить его от начального тега. Например, абзац, представленный элементом <p>, будет записан так:

<p> В синтаксисе HTML большинство элементов записываются ... </p>

Однако не для всех этих элементов требуется наличие конечного или даже начального тега. [4] Некоторые элементы, так называемые пустые элементы , не имеют закрывающего тега. Типичным примером является <br>элемент (жесткий перенос строки). Поведение элемента void предопределено, и он не может содержать никакого содержимого или других элементов. Например, адрес будет записан так:

<p> П. Шерман <br> Уоллаби - Уэй , 42 <br> Сидней </p>

При использовании XHTML необходимо открывать и закрывать все элементы, включая элементы void. Это можно сделать, поместив конечный тег сразу после начального тега, но это запрещено в HTML 5 и приведет к созданию двух элементов. Альтернативный способ указать, что это элемент void, который совместим как с XHTML, так и с HTML 5, — поставить /в конце тега (не путать с /в начале закрывающего тега).

<p> П. Шерман <br /> Уоллаби - Уэй , 42 <br /> Сидней < / p >  

Атрибуты HTML указываются внутри начального тега. Например, <abbr>элемент, представляющий аббревиатуру , ожидает titleатрибут в открывающем теге. Это будет записано как:

< аббр  заголовок = "аббревиатура" > сокр. </ сокр .>

Неофициально элементы HTML иногда называют «тегами» (пример синекдохи ), хотя многие предпочитают термин «тег» исключительно в отношении разметки, разграничивающей начало и конец элемента.

Имена элементов (и атрибутов) могут быть написаны в любой комбинации верхнего или нижнего регистра в HTML, но должны быть в нижнем регистре в XHTML. [8] Каноническая форма была прописной до HTML 4 и использовалась в спецификациях HTML, но в последние годы строчные буквы стали более распространенными.

Типы элемента

Существует три типа элементов HTML : обычные элементы, необработанные текстовые элементы и пустые элементы.

Обычные элементы обычно имеют как начальный, так и конечный тег, хотя для некоторых элементов конечный тег или оба тега могут быть опущены. Он строится аналогичным образом:

Необработанные текстовые элементы (также известные как текстовые или только текстовые элементы) создаются с помощью:

Примером может служить <title>элемент, который не должен содержать других элементов (в том числе текстовой разметки), только простой текст.

Пустые элементы (также иногда называемые пустыми элементами, отдельными элементами или автономными элементами) имеют только начальный тег (в форме), который содержит любые атрибуты HTML. Они не могут содержать дочерних элементов, таких как текст или другие элементы. Для совместимости сXHTMLспецификация HTML[ который? ]допускает необязательный пробел и косую черту[ нужна ссылка ](допустимо). Косая черта необходима вXHTMLи другихXML-приложениях. Двумя распространенными пустыми элементами являются(дляжесткого разрыва строки, например, в стихотворении или адресе) и(для тематического разрыва). Другие подобные элементы часто являются заполнителями, которые ссылаются на внешние файлы, напримерэлемент изображения ( ). Атрибуты, включенные в элемент, будут указывать на соответствующий внешний файл. Другой пример элемента void —, синтаксис которого следующий:<tag><tag /><br /><hr /><img /><link />

< ссылка  rel = «таблица стилей»  href = «fancy.css»  type = «text/css» >

Этот <link />элемент указывает браузеру на таблицу стилей , которую следует использовать при представлении HTML-документа пользователю. В синтаксисе HTML атрибуты не обязательно заключаются в кавычки, если они состоят только из определенных символов: букв, цифр, дефиса-минус и точки. С другой стороны, при использовании синтаксиса XML (XHTML) все атрибуты должны быть заключены в кавычки, а перед последней угловой скобкой требуется косая черта с интервалом:

<link rel= "таблица стилей" href= "fancy.css" type= "text/css" />    

Атрибуты

Атрибуты HTML определяют желаемое поведение или указывают дополнительные свойства элемента. Для большинства атрибутов требуется значение . В HTML значение можно оставить без кавычек, если оно не содержит пробелов (), или его можно заключить в одинарные или двойные кавычки (или). В XML эти кавычки обязательны.attribute=valueattribute='value'attribute="value"

С другой стороны, логические атрибуты не требуют указания значения. Примером являются checkedфлажки for:

< тип ввода  = флажок установлен > 

Однако в синтаксисе XML (и, следовательно, XHTML ) требуется значение, и имя должно повторяться как значение:

< тип ввода = "флажок" отмечен = "отмечено" />   

Стандарты элементов

Элементы HTML определены в серии свободно доступных открытых стандартов, выпущенных с 1995 года сначала IETF, а затем W3C .

Во время браузерных войн 1990-х годов разработчики пользовательских агентов (например, веб-браузеров ) часто разрабатывали свои собственные элементы, некоторые из которых были приняты в более поздних стандартах. Другие пользовательские агенты могут не распознавать нестандартные элементы и будут игнорироваться, что может привести к неправильному отображению страницы.

В 1998 году XML (упрощенная форма SGML) представил механизмы, позволяющие любому разрабатывать свои собственные элементы и включать их в документы XHTML для использования с пользовательскими агентами, поддерживающими XML. [9]

Впоследствии HTML 4.01 был переписан в XML -совместимой форме XHTML 1.0 ( расширяемый HTML ). Элементы в каждом из них идентичны, и в большинстве случаев действительные документы XHTML 1.0 будут действительными или почти действительными документами HTML 4.01. Эта статья в основном посвящена реальному HTML, если не указано иное; однако он по-прежнему применим к XHTML. См. HTML для обсуждения незначительных различий между ними.

Статус элемента

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

В HTML 4.01 / XHTML 1.0 статус элементов осложняется существованием трёх типов DTD :

Вместо этого HTML5 предоставляет список устаревших функций в дополнение к стандартизированному нормативному содержанию. Они разбиты на «устаревшие, но соответствующие», для которых существуют инструкции по реализации, и «несоответствующие», которые следует заменить. [11]

Первый стандарт ( HTML 2.0 ) содержал четыре устаревших элемента, один из которых был недействителен в HTML 3.2 . Все четыре недействительны в HTML 4.01 Transitional , в котором также объявлены устаревшими еще десять элементов. Все они, а также два других, недействительны в HTML 4.01 Strict . Хотя элементы фреймов все еще актуальны в том смысле, что они присутствуют в DTD Transitional и Frameset, нет планов сохранять их в будущих стандартах, поскольку их функции были в значительной степени заменены, и они весьма проблематичны для доступности пользователя.

(Строго говоря, самый последний стандарт XHTML , XHTML 1.1 (2001), вообще не включает фреймы; он примерно эквивалентен XHTML 1.0 Strict , но также включает модуль разметки Ruby .) [12]

Распространенным источником путаницы является небрежное использование слова «устаревший» для обозначения как устаревшего, так и недействительного статуса, а также элементов, которые, как ожидается, будут официально признаны устаревшими в будущем.

Контент против представления и поведения

Начиная с HTML 4, HTML все больше фокусируется на отделении контента (видимого текста и изображений) от представления (например, цвета, размера шрифта и макета). [13] Это часто называют разделением ответственности . HTML используется для представления структуры или содержимого документа, ответственность за его представление остается исключительно за таблицами стилей CSS . Таблица стилей по умолчанию предлагается как часть стандарта CSS и обеспечивает рендеринг HTML по умолчанию. [14]

Поведение (интерактивность) также отделено от контента и обрабатывается скриптами . Изображения содержатся в отдельных графических файлах, отдельно от текста, хотя их также можно считать частью содержимого страницы.

Разделение задач позволяет представлять документ различным пользовательским агентам в соответствии с их целями и возможностями. Например, пользовательский агент может выбрать подходящую таблицу стилей для представления документа путем отображения на мониторе, печати на бумаге или для определения речевых характеристик в пользовательском агенте, работающем только с аудио. Структурные и семантические функции разметки в каждом случае остаются идентичными.

Исторически сложилось так, что пользовательские агенты не всегда поддерживали эти функции. В 1990-е годы в качестве временной меры в HTML были добавлены презентационные элементы (такие как <b>и <i>), но это привело к созданию проблем с совместимостью и доступностью для пользователей. Сейчас это считается устаревшим и заменено дизайном на основе таблиц стилей; большинство презентационных элементов теперь устарели. [15]

Внешние файлы изображений включаются в элементы <img />или <object />. (С помощью XHTML язык SVG также можно использовать для написания графики внутри документа, хотя связывание с внешними файлами SVG, как правило, проще.) [ 16] Если изображение не является чисто декоративным, HTML позволяет заменять контент с аналогичным семантическим значением. предусмотрен для невизуальных пользовательских агентов.

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

Элементы <style>и <script>со связанными атрибутами HTML предоставляют таблицы стилей и сценарии.

Элементы структуры документа

<html>...</html>
Корневой элемент HTML - документа; все остальные элементы содержатся в этом. Элемент HTML ограничивает начало и конец HTML-документа.
Как начальный, так и конечный теги можно опустить (HTML5). [4]
Стандартизировано в HTML 2.0; все еще актуален.

(Дочерние элементы см. в элементах заголовка документа.)

Контейнер для обработки информации и метаданных HTML-документа.
Как начальный, так и конечный теги могут быть опущены и выведены из дочерних элементов (HTML5). [4]
Стандартизировано в HTML 5.0; все еще актуален.
<body></body>

(Дочерние элементы см. в элементах тела документа.)

Контейнер для отображаемого содержимого HTML-документа.
Как начальный, так и конечный теги могут быть опущены и выведены из дочерних элементов (HTML5). [4]
Стандартизировано в HTML 2.0; все еще актуален.

Элементы заголовка документа

<base />
Указывает базовый URL-адрес для всех относительных hrefи других ссылок в документе. Должен стоять перед любым элементом, ссылающимся на внешний ресурс. HTML допускает только один <base>элемент для каждого документа. У этого элемента есть атрибуты HTML , но нет содержимого.
Разрабатываемая версия этого элемента (как BASE) упоминается в HTML-тегах ; стандартизирован в HTML 2.0; все еще актуален.
<basefont /> (deprecated)
Указывает базовый размер шрифта, гарнитуру и цвет документа. Используется вместе с <font>элементами. Устарело в пользу таблиц стилей .
Стандартизировано в HTML 3.2; устарел в HTML 4.0 Transitional; недопустимо в HTML 4.0 Strict.
<isindex /> (deprecated)
<isindex>может появляться либо в заголовке документа, либо в теле документа, но только один раз в документе. См. Формы .
Указывает ссылки на другие документы, например предыдущие и следующие ссылки или альтернативные версии. [17] Обычно используется ссылка на внешние таблицы стилей с использованием формы . [18] Менее распространенный, но важный вариант использования — последовательное предоставление подсказок по навигации посредством использования микроформатов . Определены несколько общих отношений, которые могут быть доступны пользователям через интерфейс браузера, а не непосредственно на веб-странице, например: . Элемент документа может содержать любое количество элементов. У этого элемента есть атрибуты HTML , но нет содержимого.<link rel="stylesheet" type="text/css" href="url" title="description_of_style"><link rel="next" href="url"><head><link />
LINKсуществовал в HTML Internet Draft 1.2 и был стандартизирован в HTML 2.0; все еще актуален.
<meta />

Может использоваться для указания дополнительных метаданных о документе, таких как его автор, дата публикации, срок действия, язык, заголовок страницы, описание страницы, ключевые слова или другая информация, не предоставляемая через другие элементы заголовка и атрибуты HTML . Из-за своей общей природы <meta />элементы определяют ассоциативные пары ключ-значение . В общем, метаэлемент передает скрытую информацию о документе. Можно использовать несколько метатегов, все из которых должны быть вложены в элемент head. Конкретное назначение каждого <meta />элемента определяется его атрибутами. За пределами XHTML он часто указывается без косой черты ( <meta>), несмотря на то, что он является пустым элементом.

В одной форме <meta />элементы могут указывать HTTP- заголовки, которые должны быть отправлены веб-сервером перед фактическим содержимым. Например, указывает, что страница должна обслуживаться с HTTP-заголовком, имеющим значение .<meta http-equiv="foo" content="bar" />foobar

В общей форме <meta />элемент определяет nameи связанные с ним contentатрибуты HTML, описывающие аспекты HTML-страницы. Чтобы предотвратить возможную двусмысленность, можно указать необязательный третий атрибут , schemeчтобы указать семантическую структуру, которая определяет значение ключа и его значение. Например, элемент in идентифицирует себя как содержащий элемент со значением из структуры описания ресурсов DC или Dublin Core .<meta name="foo" content="bar" scheme="DC" /><meta />foobar
Стандартизировано в HTML 2.0; все еще актуален.
<object>...</object>
Используется для включения общих объектов в заголовок документа. Хотя он редко используется внутри <head>элемента, его потенциально можно использовать для извлечения внешних данных и связывания их с текущим документом.
Стандартизировано в HTML 4.0; все еще актуален.
<script>...</script>
Может выступать в качестве контейнера для инструкций сценария или ссылки на внешний сценарий с необязательным srcатрибутом. [19] Также можно использовать в теле документа для динамического создания как блочного, так и встроенного содержимого.
Стандартизировано в HTML 3.2; все еще актуален.
<style>...</style>
Указывает стиль CSS для документа, обычно в форме . Может выступать в качестве контейнера для инструкций по стилю или ссылки на внешние таблицы стилей – например, в CSS , с директивами вида, [20]<style type="text/css"> ... </style>@import <style> @import url; </style>
Стандартизировано в HTML 3.2; все еще актуален.
<title>...</title>
Этот тег определяет заголовок документа. Требуется в каждом документе HTML и XHTML . Пользовательские агенты могут использовать заголовок по-разному. Например:
  • Веб-браузеры обычно отображают его в строке заголовка окна, когда окно открыто, и (где применимо) на панели задач , когда окно свернуто.
  • Оно может стать именем файла по умолчанию при сохранении страницы.
  • Мы можем использовать элемент <title> на веб-странице только один раз, а когда мы создадим другую страницу, мы снова будем использовать другой элемент <title> с новым заголовком (не используйте одно и то же имя для всех тегов заголовка на веб-сайте. Это может быть проблема для поисковых систем).
  • Сканеры веб- поисковых систем могут обращать особое внимание на слова, используемые в заголовке.
Элемент <title>не должен содержать других элементов, только текст. <title>В документе допускается только один элемент.
Существовал в тегах HTML и был стандартизирован в HTML 2.0; все еще актуален.

Элементы тела документа

В визуальных браузерах отображаемые элементы могут отображаться как блочные , так и встроенные . Хотя все элементы являются частью последовательности документов, блочные элементы появляются внутри своих родительских элементов:

И наоборот, строчные элементы рассматриваются как часть текста документа; им не могут быть заданы поля, ширина или высота, и они разрываются на строки.

Блочные элементы

Блочные элементы или элементы уровня блока имеют прямоугольную структуру. По умолчанию эти элементы будут охватывать всю ширину родительского элемента и, таким образом, не позволят любому другому элементу занимать то же горизонтальное пространство, на котором он размещен.

Прямоугольную структуру блочного элемента часто называют коробчатой ​​моделью , и она состоит из нескольких частей. Каждый элемент содержит следующее:

Приведенный выше раздел относится только к подробной реализации рендеринга CSS и не имеет отношения к самим элементам HTML.

Основной текст

<p>...</p>
Создает абзац, возможно, самый распространенный элемент уровня блока.
Pсуществовал в тегах HTML и был стандартизирован в HTML 2.0; все еще актуален.
<h1>...</h1>
<h2>...</h2>
<h3>...</h3>
<h4>...</h4>
<h5>...</h5>
<h6>...</h6>
Заголовки разделов разного уровня. h1ограничивает заголовок самого высокого уровня, h2следующий уровень ниже (подраздел), h3уровень ниже этого и т. д. до h6. Иногда их называют тегами , где n означает любой из доступных уровней заголовков. Большинство визуальных браузеров по умолчанию отображают заголовки как большой жирный текст, хотя это можно переопределить с помощью CSS . Элементы заголовка предназначены не только для создания большого или жирного текста — на самом деле их не следует использовать для явного стилизации текста. Скорее, они описывают структуру и организацию документа. Некоторые программы используют их для создания схем и оглавлений.hn
Заголовки существовали в тегах HTML и были стандартизированы в HTML 2.0; все еще актуален.

Списки

<dl>...</dl>
Список описаний (также известный как список ассоциаций или список определений) состоит из групп имя-значение [21] и до появления HTML5 был известен как список определений. [22] Списки описаний предназначены для групп «терминов и определений, тем и значений метаданных, вопросов и ответов или любых других групп данных имени и значения». [23]
DLсуществовал в тегах HTML и был стандартизирован в HTML 2.0; все еще актуален.
<dt>...</dt>
Имя в списке описаний (ранее термин определения в списке определений).
DTсуществовал в тегах HTML и был стандартизирован в HTML 2.0; все еще актуален.
<dd>...</dd>
Значение в списке описаний (ранее данные определения в списке определений).
DDсуществовал в тегах HTML и был стандартизирован в HTML 2.0; все еще актуален.
<ol>...</ol>
Упорядоченный (нумерованный) список. Атрибут typeможно использовать для указания типа маркера, который будет использоваться в списке, но таблицы стилей предоставляют больше контроля. По умолчанию используется арабская нумерация. В атрибуте HTML: ; или в объявлении CSS: – заменить одним из следующих:<ol type="foo">ol { list-style-type: foo; }foo
  • A, B, C ... – HTML-значение: A; Значение CSS:upper-alpha
  • a, b, c ... – HTML-значение: a; Значение CSS:lower-alpha
  • I, II, III ... – HTML-значение: I; Значение CSS:upper-roman
  • i, ii, iii ... – значение HTML: i; Значение CSS:lower-roman
  • 1, 2, 3 ... – HTML-значение: 1;decimal
CSS предоставляет несколько других параметров, недоступных в виде разметки чистого HTML, включая noneпараметры CJK , иврита, грузинского и армянского алфавита. Атрибут устарел в HTML 3.2 и 4.01, но не в HTML 5.
OLсуществовал в HTML Internet Draft 1.2 и был стандартизирован в HTML 2.0; все еще актуален.
<ul>...</ul>
An unordered (bulleted) list. The type of list item marker can be specified in an HTML attribute: <ul type="foo">; or in a CSS declaration: ul { list-style-type: foo; } – replacing foo with one of the following (the same values are used in HTML and CSS): disc (the default), square, or circle. Only the CSS method is supported in HTML5; the attribute is deprecated in HTML 3.2 and 4.01. CSS also provides none, and the ability to replace these bullets with custom images.
UL existed in HTML Tags, and was standardized in HTML 2.0; still current.
<li>...</li>
A list item in ordered (ol) or unordered (ul) lists.
LI existed in HTML Tags, and was standardized in HTML 2.0; still current.
<dir>...</dir> (deprecated)
A directory listing. The original purpose of this element was never widely supported; deprecated in favor of <ul>.
DIR existed in HTML Tags, and was standardized in HTML 2.0; deprecated in HTML 4.0 Transitional; invalid in HTML 4.0 Strict.

Other block elements

<address>...</address>
Contact information for the document author.
ADDRESS existed in HTML Tags, and was standardized in HTML 2.0; still current.
<article>...</article>
Used for articles and other similar content.
Standardized in HTML5.
<aside>...</aside>
Used for content in a document which is separate from the main page content, for example, sidebars or advertising.
Standardized in HTML5.
<blockquote>...</blockquote>

A block level quotation, for when the quotation includes block level elements, e.g. paragraphs. The cite attribute (not to be confused with the <cite> element) may give the source, and must be a fully qualified Uniform Resource Identifier.

The default presentation of block quotations in visual browsers is usually to indent them from both margins. This has led to the element being unnecessarily used just to indent paragraphs, regardless of semantics. For quotations not containing block level elements see the quote (<q>) element.
BLOCKQUOTE existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current. See blockquote element for more information.
<center>...</center> (deprecated)
Creates a block-level center-aligned division. Deprecated in favor of <div> or another element with centering defined using style sheets.
Standardized in HTML 3.2; deprecated in HTML 4.0; not supported in HTML5.
<del>...</del>
Marks a deleted section of content. This element can also be used as inline.
Standardized in HTML 4.0; still current.
<div>...</div>
A block-level logical division. A generic element with no semantic meaning used to distinguish a document section, usually for purposes such as presentation or behavior controlled by style sheets or DOM calls.
Proposed in the HTML 3.0 Drafts; Standardized in HTML 3.2; still current.
<figure>...</figure>
Used to group images and captions, along with <figcaption>.
Standardized in HTML5.
<figcaption>...</figcaption>
A caption for an image. Always placed inside the <figure> element.
Standardized in HTML5.
Used for document footers. These might contain author or copyright information, or links to other pages.
Standardized in HTML5.
Used for document headers. These typically contain content introducing the page.
Standardized in HTML5.
<hr />
A thematic break (originally: horizontal rule). Presentational rules can be drawn with style sheets.
Standardized in HTML 2.0; still current.
<ins>...</ins>
Marks a section of inserted content. This element can also be used as inline.
Standardized in HTML 4.0; still current.
<main>...</main>
Contains the main content of a document.
Standardized in HTML 5.1.
HTML 2.0: A menu listing. Should be more compact than a <ul> list.
MENU existed in HTML Tags, and was standardized in HTML 2.0; deprecated in HTML 4.0 Transitional; invalid in HTML 4.0 Strict; then redefined in HTML5, removed in HTML 5.2, but is included in the HTML Living Standard in 2019.
Used in navigational sections of articles (areas of webpages which contain links to other webpages).
Standardized in HTML5.
<noscript>...</noscript>
Replacement content for scripts. Unlike script this can only be used as a block-level element.
Standardized in HTML 4.0; still current.
<pre>...</pre>
Pre-formatted text. Text within this element is typically displayed in a non-proportional font exactly as it is laid out in the file (see ASCII art). Whereas browsers ignore white-space for other HTML elements, in <pre>...</pre>, white-space should be rendered as authored. (With the CSS properties: { white-space: pre; font-family: monospace; }, other elements can be presented in the same way.) This element can contain any inline element except: <image>, <object>, <big>, <small>, <sup>, and <sub>...</sub>.
PRE existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current.
<section>...</section>
Used for generic sections of a document. This is different from <div> in that it is only used to contain sections of a page, which the W3C defines as a group of content with a similar theme.
Standardized in HTML5.
<script>...</script>
Places a script in the document. Also usable in the head and in inline contexts. It may be used as <script /> with a src attribute to supply a URL from which to load the script, or used as <script>...</script> around embedded script content.Note: <script> is not itself either a block or inline element; by itself it should not display at all, but it can contain instructions to dynamically generate either both block or inline content.
Standardized in HTML 3.2; still current.

Inline elements

Inline elements cannot be placed directly inside the <body> element; they must be wholly nested within block-level elements.[24]

Anchor

<a>...</a>

An anchor element is called an anchor because web designers can use it to "anchor" a URL to some text on a web page. When users view the web page in a browser, they can click the text to activate the link and visit the page whose URL is in the link.[25]

In HTML, an anchor can be either the origin (the anchor text) or the target (destination) end of a hyperlink.

With the attribute href,[26] the anchor becomes a hyperlink to either another part of the document or another resource (e.g. a webpage) using an external URL. Alternatively (and sometimes concurrently), with the name or id HTML attributes set, the element becomes a link target. A Uniform Resource Locator (URL) can link to this target via a fragment identifier. In HTML5, any element can now be made into a target by using the id attribute,[27] so using <a name="foo">...</a> is not necessary, although this way of adding anchors continues to work.

To illustrate: the header of a table of contents section on example.com's homepage could be turned into a target by writing: <h2><a name="contents">Table of contents</a></h2>.

Continuing with this example, now that the section has been marked up as a target, it can be referred to from external sites with a link like: <a href="http://example.com#contents">see contents</a>;

or with a link on the same page like: <a href="#contents">contents, above</a>.

The attribute title may be set to give brief information about the link: <a href="URL" title="additional information">link text</a>.

In most graphical browsers, when the cursor hovers over a link, the cursor changes into a hand with an extended index finger and the title value is displayed in a tooltip or in some other manner. Some browsers render alt text the same way, although this is not what the specification calls for.

A existed in HTML Tags, and was standardized in HTML 2.0;

Phrase elements

Phrase elements are used for marking up phrases and adding structure or semantic meaning to text fragments. For example, the <em> and <strong> tags can be used for adding emphasis to text.

General
<abbr>...</abbr>
Marks an abbreviation, and can make the full form available: <abbr title="abbreviation">abbr.</abbr>
Standardized in HTML 4.0; still current.
<acronym>...</acronym> (deprecated)
Similar to the <abbr> element, but marks an acronym: <acronym title="Hyper-Text Mark-up Language">HTML</acronym>
Standardized in HTML 4.0; still current, not supported in HTML5. Recommended replacement is the abbr tag.[28]
<dfn>...</dfn>
Inline definition of a single term.
DFN existed in HTML Internet Draft 1.2, and was fully standardized in HTML 3.2; still current.
<em>...</em>
Emphasis (conventionally displayed in italics)
EM existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current.
<strong>...</strong>
importance; originally strong emphasis (conventionally displayed bold). An aural user agent may use different voices for emphasis.
STRONG existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current, redefined in HTML5.
Computer phrase elements

These elements are useful primarily for documenting computer code development and user interaction through differentiation of source code (<code>), variables (<var>), user input (<kbd>), and terminal or other output (<samp>).

<code>...</code>
A code snippet (code example). Conventionally rendered in a mono-space font.
CODE existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current.
<kbd>...</kbd>
Keyboard – text to be entered by the user (kbd example).
KBD existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current.
<samp>...</samp>
Sample output – from a program or script: (samp example).
SAMP existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current.
<var>...</var>
Variable (var example).
VAR existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current.

Presentation

As visual presentational markup only applies directly to visual browsers, its use is discouraged. Style sheets should be used instead. Several of these elements are deprecated or invalid in HTML 4 / XHTML 1.0, and the remainder are invalid in the current draft of XHTML 2.0. The current draft of HTML5, however, re-includes <s>, <u>, and <small>, assigning new semantic meaning to each. In an HTML5 document, the use of these elements is no longer discouraged, provided that it is semantically correct.

<b>...</b>
In HTML 4, set font to boldface where possible. Equivalent CSS: { font-weight: bold; }. The <strong> element usually has the same effect in visual browsers, as well as having more semantic meaning, under HTML 4.01. In HTML5, however, <b> has its own meaning, distinct from that of <strong>. It denotes "text to which attention is being drawn for utilitarian purposes without conveying any extra importance and with no implication of an alternate voice or mood."[29]
B existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current, redefined in HTML5.
<i>...</i>
In HTML 4, set font to italic where possible. Equivalent CSS: { font-style: italic; }. Using <em>...</em> has the same visual effect in most browsers, as well as having a semantic meaning as emphasis, under HTML 4.01. (Purely typographic italics have many non-emphasis purposes, as HTML 5 more explicitly recognized.) In HTML5, however, <i> has its own semantic meaning, distinct from that of <em>. It denotes "a different quality of text" or "an alternate voice or mood" e.g., a thought, a ship name, a binary species name, a foreign-language phrase, etc.[30]
I existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current, redefined in HTML5.
<u>...</u>
In HTML 4, underlined text. Equivalent CSS: { text-decoration: underline; }. Deprecated in HTML 4.01. Restored in HTML5. In HTML5, the <u> element denotes "a span of text with an unarticulated, though explicitly rendered, non-textual annotation, such as labelling the text as being a proper name in Chinese text (a Chinese proper name mark), or labelling the text as being misspelt." The HTML5 specification reminds developers that other elements are almost always more appropriate than <u> and admonishes designers not to use underlined text where it could be confused for a hyper-link.[31]
U existed in HTML Internet Draft 1.2, was standardized in HTML 3.2 but was deprecated in HTML 4.0 Transitional and was invalid in HTML 4.0 Strict. Reintroduced in HTML5.
<small>...</small>
In HTML 4, decreased font size (smaller text). Equivalent CSS: { font-size: smaller; }In HTML5, the <small> element denotes "side comments such as small print."[32] This has caused some confusion with the <aside>...</aside> element.
Standardized in HTML 3.2; still current.
<s>...</s>
In HTML 4, indicated strike-through text (Strikethrough) and was equivalent to <strike>. In HTML5, the <s> element denotes information that is "no longer accurate or no longer relevant", and is not to be confused with <del>, which indicates removal/deletion.[33]
S was deprecated in HTML 4.0 Transitional (having not appeared in any previous standard), and was invalid in HTML 4.0 Strict. Reintroduced in HTML5, which instead deprecated <strike>.
<big>...</big> (deprecated)
Increased font size (bigger text). Equivalent CSS: { font-size: larger; }
Standardized in HTML 3.2; not supported in HTML5.
<strike>...</strike> (deprecated)
Strike-through text (Strikethrough), (Equivalent CSS: { text-decoration: line-through; })
STRIKE was standardized in HTML 3.2; deprecated in HTML 4.0 Transitional; invalid in HTML 4.0 Strict.
<tt>...</tt> (deprecated)
Fixed-width font (typewriter-like), also known as teletype, thus "tt". (Equivalent CSS: { font-family: monospace; })
TT existed in HTML Internet Draft 1.2, and was Standardized in HTML 2.0; not supported[34] in HTML5. Possible replacements: <kbd> for marking user input, <var> for variables (usually rendered italic, and not with a change to monospace), <code> for source code, <samp> for output.[34]
<font>...</font> (deprecated)
<font [color=<var>color</var>] [size=<var>size</var>] [face=<var>face</var>]>...</font>Can specify the font color with the color attribute (note the American spelling), typeface with the face attribute, and absolute or relative size with the size attribute. Examples (all uses are deprecated, use CSS equivalents if possible):Equivalent CSS for font attributes:
Standardized in HTML 3.2; deprecated in HTML 4.0 Transitional; invalid in HTML 4.0 Strict. Not part of HTML5.

Span

<span>...</span>
An inline logical division. A generic element with no semantic meaning used to distinguish a document section, usually for purposes such as presentation or behavior controlled by style sheets or DOM calls.
Standardized in HTML 4.0; still current.

Other inline elements

<br />
A forced line break.
Standardized in HTML 2.0; still current.
<bdi>...</bdi>
Isolates an inline section of text that may be formatted in a different direction from other text outside of it, such as user-generated content with unknown directionality.
Standardized in HTML5.
<bdo>...</bdo>
Marks an inline section of text in which the reading direction is the opposite from that of the parent element.
Standardized in HTML 4.0; still current.
<cite>...</cite>
A citation or a reference for a quote or statement in the document.
CITE existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current.
Note: The HTML 5 specifications have been confusingly forked,[35] including with regard to this element. In HTML 4 and earlier, <cite> was for "a citation or a reference to other sources" without any particular limitations or requirements.[36] The W3C HTML 5 spec uses a refinement of this idea, reflecting how the element has historically been used, but now requiring that it contain (but not be limited to) at least one of "the title of the work or the name of the author (person, people or organization) or an URL reference, or a reference in abbreviated form as per the conventions used for the addition of citation metadata."[37] But the WHATWG spec only permits the element to be used around the title of a work.[38] The W3C specs began with the broader definition, then switched to the very narrow one after WHATWG made this change. However, W3C reverted their own change in 2012, in response to negative developer-community feedback; the element was in broadly-deployed use with the broader scope, e.g., various blog and forum platforms wrap commenters' IDs and e-mail addresses in <cite>...</cite>, and people using the element for bibliographic citations were (and still are) routinely wrapping each entire citation in this element. Another problem with the element is that WHATWG recommends that it be italicized by default (thus almost all browsers do so), because it (in their view) is only for publication titles. By convention, however, only certain kinds of titles actually take italics, while others are expected to be put in quotation marks, and standards may actually vary by publishing context and language. Consequently, many website authors and admins use a site-wide stylesheet to undo this element's auto-italics.
<data>...</data>
Links inline content with a machine-readable translation.
Standardized in HTML5.[39]
<del>...</del>
Deleted text. Typically rendered as a strikethrough: Deleted text.
Standardized in HTML 4.0; still current.
<ins>...</ins>
Inserted text. Often used to mark up replacement text for material struck with <del> or <s>. Typically rendered underlined: Inserted text.
Standardized in HTML 4.0; still current.
Both <ins> and <del> elements may also be used as block elements: containing other block and inline elements. However, these elements must still remain wholly within their parent element to maintain a well-formed HTML document. For example, deleting text from the middle of one paragraph across several other paragraphs and ending in a final paragraph would need to use three separate <del> elements. Two <del> elements would be required as inline elements to indicate the deletion of text in the first and last paragraphs, and a third, used as a block element, to indicate the deletion in the intervening paragraphs.
<mark>...</mark>
Produces text that looks like this. Intended for highlighting relevant text in a quotation.
Standardized in HTML5.
<q>...</q>
An inline quotation (for block level quotation see <blockquote>). Quote elements may be nested.<q> should automatically generate quotation marks in conjunction with style sheets. Practical concerns due to browser non-compliance may force authors to find workarounds. The cite attribute gives the source, and must be a fully qualified URI.
Standardized in HTML 4.0; still current.
Note: Lengthy inline quotations may be displayed as indented blocks (as block-quote) using style sheets. For example, with a suitable CSS rule associated with q.lengthy: <q class="lengthy">Lengthy quote here.</q>
<rb>...</rb>
Represents the base component of a ruby annotation.
Standardized in HTML5.[40]
<rp>...</rp>
Provides fallback parenthesis for browsers lacking ruby annotation support.
Standardized in HTML5.[41]
<rt>...</rt>
Indicates pronunciation for a character in a ruby annotation.
Standardized in HTML5.[42]
<rtc>...</rtc>
Semantic annotations for a ruby annotation.
Standardized in HTML5.[43]
<ruby>...</ruby>
Represents a ruby annotation for showing the pronunciation of East Asian characters.
Standardized in HTML5.[44]
<script>...</script>
Places a script in the document. Also usable in the head and in block contexts.Note: <script> is not itself either a block or inline element; by itself it should not display at all, but it can contain instructions to dynamically generate either both block or inline content.
Standardized in HTML 3.2; still current.
<sub>...</sub>
<sup>...</sup>
Mark subscripted or superscripted text. (Equivalent CSS: { vertical-align: sub; } and { vertical-align: super; }, respectively.)
Both were proposed in the HTML 3.0 Drafts; Standardized in HTML 3.2; still current.
<template>...</template>
Code fragments to be copied by scripts.
Standardized in HTML5.[45]
<time>...</time>
Represents a time on the 24-hour clock or a date on the Gregorian calendar, optionally with time and time zone information. Also allows times and dates to be represented in a machine-readable format.
Standardized in HTML5.[46]
<wbr />
An optional word break.
Was widely used (and supported by all major browsers)[citation needed] for years[timeframe?] despite being non-standard until finally being standardized in HTML5.[47]

Images and objects

<applet>...</applet> (deprecated)
Embeds a Java applet in the page. Deprecated in favor of <object>, as it could only be used with Java applets, and had accessibility limitations.
Standardized in HTML 3.2; deprecated in HTML 4.0 Transitional; invalid in HTML 4.0 Strict. As of 2011, still widely used as the implementations of the replacing <object> are not consistent between different browsers.
<area />
Specifies a focusable area in a <map>.
Standardized in HTML 3.2; still current.
<audio>...</audio>
Adds playable HTML audio to the page. The audio URL is determined using the src attribute. Supported audio formats vary from browser to browser.
Standardized in HTML5.
<canvas>...</canvas>
Adds a canvas whose contents can be edited with JavaScript. Frequently used for online games.
Standardized in HTML5.
<embed>...</embed>
Inserts a non-standard object (like applet) or external content (typically non-HTML) into the document.
Deprecated in HTML 4 in favor of <object>, but then was added back into the HTML5 specification[48][49]
<img />
Used by visual user agents to insert an image in the document. The src attribute specifies the image URL. The required alt attribute provides alternative text in case the image cannot be displayed.[50] (Though alt is intended as alternative text, Microsoft Internet Explorer 7 and below render it as a tooltip if no title attribute is given.[51] Safari and Google Chrome, on the other hand, do not display the alt attribute at all.)[52] The <img /> element was first proposed by Marc Andreessen and implemented in the NCSA Mosaic web browser.[53]
IMG existed in HTML Internet Draft 1.2, and was standardized in HTML 2.0; still current.
<map>...</map>
Specifies a client-side image map.
Standardized in HTML 3.2; still current.
<object>...</object>
Includes an object in the page of the type specified by the type attribute. This may be in any MIME-type the user agent understands, such as an embedded HTML page, a file to be handled by a plug-in such as Flash, a Java applet, a sound file, etc.
Standardized in HTML 4.0; still current.
<param />
Originally introduced with <applet>, this element is now used with <object>, and should only occur as a child of <object>. It uses HTML attributes to set a parameter for the object, e.g. width, height, font, background color, etc., depending on the type of object. An object can have multiple <param /> elements.
Standardized in HTML 3.2; still current.
<source>...</source>
Specifies different sources for audio or video. Makes use of the src attribute in a way similar to the <video> and <audio> elements.
Standardized in HTML5.
<track>...</track>
Provides text tracks, like subtitles and captions, for audio and video.
Standardized in HTML5.
<video>...</video>
Adds a playable HTML video to the page. The video URL is determined using the src attribute. Supported video formats vary from browser to browser.
Standardized in HTML5.

Forms

These elements can be combined into a form or in some instances used separately as user-interface controls; in the document, they can be simple HTML or used in conjunction with Scripts. HTML markup specifies the elements that make up a form, and the method by which it will be submitted. However, some form of scripts (server-side, client-side, or both) must be used to process the user's input once it is submitted.

(These elements are either block or inline elements, but are collected here as their use is more restricted than other inline or block elements.)

<form action="url">...</form>
Creates a form. The <form> element specifies and operates the overall action of a form area, using the required action attribute.
Standardized in HTML 2.0; still current.
<button>...</button>
A generic form button which can contain a range of other elements to create complex buttons.
Standardized in HTML 4.0; still current.
<datalist>...</datalist>
A list of options for use in form elements.
Standardized in HTML5.
<fieldset>...</fieldset>
A container for adding structure to forms. For example, a series of related controls can be grouped within a <fieldset>, which can then have a <legend> added in order to identify their function.
Standardized in HTML 4.0; still current.
<input />
<input> elements allow a variety of standard form controls to be implemented.
Standardized in HTML 2.0; still current.
Input Types:
 type="checkbox"
A checkbox. Can be checked or unchecked.
 type="radio"
A radio button. If multiple radio buttons are given the same name, the user will only be able to select one of them from this group.
 type="button"
A general-purpose button. The element <button> is preferred if possible (i.e., if the client supports it) as it provides richer possibilities.
 type="submit"
A submit button.
 type="image"
An image button. The image URL may be specified with the src attribute.
 type="reset"
A reset button for resetting the form to default values.
 type="text"
A one-line text input field. The size attribute specifies the default width of the input in character-widths. max-length sets the maximum number of characters the user can enter (which may be greater than size).
A variation of text which produces a search bar.
 type="password"
A variation of text. The difference is that text typed in this field is masked – characters are displayed as an asterisk, a dot, or another replacement. The password is still submitted to the server as plaintext, so an underlying secure communication protocol like HTTPS is needed if confidentiality is a concern.
 type="file"
A file select field (for uploading files to a server).
 type="tel"
A variation of text for telephone numbers.
 type="email"
A variation of text for email addresses.
 type="url"
A variation of text for URLs.
 type="date"
A date selector.
 type="time"
A time selector.
 type="number"
A variation of text for numbers.
 type="range"
Produces a slider for that returns a number, but the number is not visible to the user.
 type="color"
A color picker.
 type="hidden"
hidden inputs are not visible in the rendered page, but allow a designer to maintain a copy of data that needs to be submitted to the server as part of the form. This may, for example, be data that this web user entered or selected on a previous form that needs to be processed in conjunction with the current form. Not displayed to the user but data can still be altered client-side by editing the HTML source.
<isindex /> (deprecated)
<isindex /> could either appear in the document head or in the body, but only once in a document.<isindex /> operated as a primitive HTML search form; but was de facto obsoleted by more advanced HTML forms introduced in the early to mid-1990s. Represents a set of hyperlinks composed of a base URI, an ampersand and percent-encoded keywords separated by plus signs.
ISINDEX existed in HTML Tags; standardized in HTML 2.0; deprecated in HTML 4.0 Transitional; invalid in HTML 4.0 Strict.
<keygen>...</keygen> (deprecated)
A key pair generator.
Standardized in HTML5, but removed in HTML 5.2.
<label for="id">...</label>
Creates a label for a form input, such as radio. Clicking on the label fires a click on the matching input.
Standardized in HTML 4.0; still current.
<legend>...</legend>
A legend (caption) for a <fieldset>.
Standardized in HTML 4.0; still current.
<meter>...</meter>
A meter which needs a value attribute. Can also have: min, low, high, and max.
Standardized in HTML5.
<option value="x">...</option>
Creates an item in a <select> list.
Standardized in HTML 2.0; still current.
<optgroup>...</optgroup>
Identifies a group of <option> elements in a <select> list.
Standardized in HTML 4.0; still current.
<output>...</output>
The value of a form element.
Standardized in HTML5.
<progress>...</progress>
A bar for showing the progress of an action.
Standardized in HTML5.
<select name="xyz">...</select>
Creates a selection list, from which the user can select a single option. May be rendered as a dropdown list.
Standardized in HTML 2.0; still current.
<textarea rows="8">...</textarea>
A multiple-line text area, the size of which is specified by cols (where a column is a one-character width of text) and rows HTML attributes. The content of this element is restricted to plain text, which appears in the text area as default text when the page is loaded.
Standardized in HTML 2.0; still current.

Tables

The format of HTML Tables was proposed in the HTML 3.0 Drafts and the later RFC 1942 HTML Tables. They were inspired by the CALS Table Model. Some elements in these proposals were included in HTML 3.2; the present form of HTML Tables was standardized in HTML 4. (Many of the elements used within tables are neither block nor inline elements.)

<table>...</table>
Identifies a table. Several HTML attributes are possible in HTML Transitional, but most of these are invalid in HTML Strict and can be replaced with style sheets. The summary attribute is informally required for accessibility purposes, though its usage is not simple.
Proposed in the HTML 3.0 Drafts; Standardized in HTML 3.2; still current.
<tr>...</tr>
Contains a row of cells in a <table>.
Proposed in the HTML 3.0 Drafts; Standardized in HTML 3.2; still current.
<th>...</th>
A <table> header cell; contents are conventionally displayed bold and centered. An aural user agent may use a louder voice for these items.
Proposed in the HTML 3.0 Drafts; Standardized in HTML 3.2; still current.
<td>...</td>
A <table> data cell.
Proposed in the HTML 3.0 Drafts; Standardized in HTML 3.2; still current.
<colgroup>...</colgroup>
Specifies a column group in a <table>.
Proposed in HTML Tables; Standardized in HTML 4.0; still current.
<col>...</col>
Specifies a column in a <table>.
Proposed in HTML Tables; Standardized in HTML 4.0; still current.
<caption>...</caption>
Specifies a caption for a <table>.
Proposed in the HTML 3.0 Drafts; Standardized in HTML 3.2; still current.
<thead>...</thead>
Specifies the header part of a <table>. This section may be repeated by the user agent if the table is split across pages (in printing or other paged media).
Proposed in HTML Tables; Standardized in HTML 4.0; still current.
<tbody>...</tbody>
Specifies a body of data for a <table>.
Proposed in HTML Tables; Standardized in HTML 4.0; still current.
<tfoot>...</tfoot>
Specifies the footer part of a <table>. Like <thead>, this section may be repeated by the user agent if the table is split across pages (in printing or other paged media).
Proposed in HTML Tables; Standardized in HTML 4.0; still current.

Frames

Frames allow a visual HTML browser window to be split into segments, each of which can show a different document. This can lower bandwidth use, as repeating parts of a layout can be used in one frame, while variable content is displayed in another. This may come at a certain usability cost, especially in non-visual user agents,[54] due to separate and independent documents (or websites) being displayed adjacent to each other and being allowed to interact with the same parent window. Because of this cost, frames (excluding the <iframe> element) are only allowed in HTML 4.01 Frame-set. Iframes can also hold documents on different servers. In this case the interaction between windows is blocked by the browser. Sites like Facebook and Twitter use iframes to display content (plugins) on third party websites. Google AdSense uses iframes to display banners on third party websites.

In HTML 4.01, a document may contain a <head> and a <body> or a <head> and a <frameset>, but not both a <body> and a <frameset>. However, <iframe> can be used in a normal document body.

<frameset>...</frameset> (deprecated)
Contains the set of <frame /> elements for a document. The layout of frames is given by comma separated lists in the rows and cols HTML attributes.
Standardized in HTML 4.0 Frameset, obsolete in HTML5.
<frame /> (deprecated)
Defines a single frame, or region, within the <frameset>. A separate document is linked to a frame using the src attribute inside the <frame /> element.
Standardized in HTML 4.0 Frameset, obsolete in HTML5.
<noframes>...</noframes> (deprecated)
Contains normal HTML content for user agents that do not support <frame /> elements.
Standardized in HTML 4.0 Transitional, obsolete in HTML5.
<iframe>...</iframe>
An inline frame places another HTML document in a frame. Unlike an <object /> element, an <iframe> can be the "target" frame for links defined by other elements, and it can be selected by the user agent as the focus for printing, viewing its source, and so on. The content of the element is used as alternative text to be displayed if the browser does not support inline frames. A separate document is linked to a frame using the src attribute inside the <iframe />, an inline HTML code is embedded to a frame using the srcdoc attribute inside the <iframe /> element.
First introduced by Microsoft Internet Explorer in 1997, standardized in HTML 4.0 Transitional, allowed in HTML5.

longdesc attribute

In HTML, longdesc is an attribute used within the <img />, <frame />, or <iframe> elements. It is supposed to be a URL[note 5] to a document that provides a long description for the image, frame, or iframe in question.[55] This attribute should contain a URL, not – as is commonly mistaken – the text of the description itself.

longdesc was designed to be used by screen readers to display image information for computer users with accessibility issues, such as the blind or visually impaired, and is widely implemented by both web browsers and screen readers.[56] Some developers object that[57] it is actually seldom used for this purpose because there are relatively few authors who use the attribute and most of those authors use it incorrectly; thus, they recommend deprecating longdesc.[58] The publishing industry has responded, advocating the retention of longdesc.[59]

Example

<img src="Hello.jpg" longdesc="description.html">


Content of description.html:

<br /><p>This is an image of a two-layered birthday cake.</p>...

Linking to the long description in the text

Since very few graphical browsers support making the link available natively (Opera and iCab being the exceptions), it is useful to include a link to the description page near the <img /> element whenever possible, as this can also aid sighted users.

Example
<img src="Hello.jpg" longdesc="description.html" /> [<a href="description.html" title="long description of the image">D</a>]

Historic elements

The following elements were part of the early HTML developed by Tim Berners-Lee from 1989 to 1991; they are mentioned in HTML Tags, but deprecated in HTML 2.0 and were never part of HTML standards.

<listing>...</listing> (deprecated)
This element displayed the text inside the tags in a monospace font and without interpreting the HTML. The HTML 2.0 specification recommended rendering the element at up to 132 characters per line.
Deprecated in HTML 3.2; obsolete in HTML5.[60]
<plaintext> (deprecated)
<plaintext> does not have an end tag as it terminates the markup and causes the rest of the document to be parsed as if it were plaintext.
<plaintext> existed in HTML Tags; deprecated in HTML 2.0; invalid in HTML 4.0.
<xmp>...</xmp> (deprecated)
This element displayed the text inside the tags in a monospace font and without interpreting the HTML. The HTML 2.0 specification recommended rendering the element at 80 characters per line.
Deprecated in HTML 3.2; obsolete in HTML5.[61]
<nextid> (deprecated)
This element enabled NeXT web designing tool to generate automatic NAME labels for its anchors and was itself automatically generated.[60]
<nextid> existed in HTML Tags (described as obsolete); deprecated in HTML 2.0; invalid in HTML 3.2 and later.

Non-standard elements

This is the new WikiPedia!

Example of marquee text from the first Wikipedia edit (accomplished via CSS; the <marquee> tag itself is deprecated and no longer works in most browsers)

UuU

Example of blinking text (accomplished via CSS; the <blink> tag itself is deprecated and no longer works in most browsers) with link to page. Not to be confused with UwU, this page contains the earliest surviving edit on the English Wikipedia.

This section lists some widely used obsolete elements, which means they are not used in valid code. They may not be supported in all user agents.

Causes text to blink. Introduced in imitation of the ANSI escape codes. Can be done with CSS where supported: {text-decoration: blink} (This effect may have negative consequences for people with photosensitive epilepsy;[62] its use on the public Internet should follow the appropriate guidelines.)
<blink> originated in Netscape Navigator and is mostly recognized by its descendants, including Firefox; deprecated or invalid in HTML 2.0 and later. The replacement CSS tag, while standard, is not required to be supported.
<layer>...</layer> (deprecated)
Creates an absolute positioned and framed layer. Can be done with frames and/or CSS instead. There are attributes, including ID, LEFT, TOP, PAGEX, PAGEY, SRC, Z-INDEX, ABOVE, WIDTH, HEIGHT, BELOW, CLIP, VISIBILITY and CLIP.
<layer> originated in Netscape 4; deprecated or invalid in HTML 4.01 and later.
<marquee>...</marquee> (deprecated)
Creates scrolling text. Can be done with scripting instead. (This effect may have negative consequences for people with photosensitive epilepsy;[62] its use on the public Internet should follow the appropriate guidelines.) There are three options, including Alternate, Scroll and slide. Scrolldelay can also be added.
<marquee> originated in Microsoft Internet Explorer; deprecated or invalid in HTML 4.01 and later.
<nobr>...</nobr> (deprecated)
Causes text to not break at end of line, preventing word wrap where text exceeds the width of the enclosing object. Adjacent text may break before and after it. Can be done with CSS: {white-space: nowrap;}
<nobr> is a proprietary element which is recognized by most browsers for compatibility reasons; deprecated or invalid in HTML 2.0 and later.
<noembed>...</noembed> (deprecated)
Specifies alternative content, if the embed cannot be rendered. Replaced by the content of the <embed> or <object> element.

Comments

<!-- A Comment -->

A comment in HTML (and related XML, SGML and SHTML) uses the same syntax as the SGML comment or XML comment, depending on the doctype.

Unlike most HTML tags, comments do not nest. More generally, there are some strings that are not allowed to appear in the comment text. Those are <!--(the beginning of a comment),-->(this ends the comment so it trivially follows it can not appear inside it) and --!>. Additionally, the strings > and -> cannot appear at the beginning of a comment and <!- cannot appear at the end.[63]

As a result, the markup <!--Xbegin<!--Y-->Xend--> is ill-formed and will yield the comment Xbegin<!--Y and the text Xend--> after it, or sometimes just Xend-->, depending on browser.

Comments can appear anywhere in a document, as the HTML parser is supposed to ignore them no matter where they appear so long as they are not inside other HTML tag structures (i.e., they cannot be used next to attributes and values; this is invalid markup: <span id="x1"<!--for "extension one"--> style="...">).

Comments can even appear before the doctype declaration; no other tags are permitted to do this.

However, not all browsers and HTML editors are fully compliant with the HTML syntax framework and may do unpredictable things under some syntax conditions. Defective handling of comments only affects about 5% of all browsers and HTML editors in use, and even then only certain versions are affected by comment mishandling issues (Internet Explorer 6 accounts for most of this high percentage).

There are a few compatibility quirks involving comments:

  • Placing comments – or indeed any characters except for white-space – before the doctype will cause Internet Explorer 6 to use quirks mode for the HTML page. None of the doctype information will be processed.
  • For compatibility with some pre-1995 browsers, the contents of <style> and <script> elements are still sometimes surrounded by comment delimiters, and CSS- and script-capable browsers are written to specifically ignore that comment markup as not actually a comment. This means that attempts to actually comment out CSS and script markup by change the elements inside the comment to not be recognized, e.g. <-- [script]...[/script] -->.
  • The BlueGriffon HTML editor, in versions 1.7.x, makes comments that are not embedded in the syntax structure; <style> ... {comment tags} ...</style> will show up on-screen. Other HTML editors may have this same defect.

See also

Notes

  1. ^ HTML 4.01 is one of a small number of well-known HTML DTDs. It is chosen here as the best illustrative example, although the same behavior applies to the other W3C-published DTDs for HTML.
  2. ^ A macro-like feature of DTDs may still be used within XML.
  3. ^ One minor difference is that XML, even after the DOM interface, is case-sensitive.[5]
  4. ^ However, see <object> for the inevitable exception.
  5. ^ Strictly an IRI, not a URL; although URLs are a subset of IRIs.

References

  1. ^ a b "§3 On SGML and HTML". HTML 4.01 Specification. W3C. 24 December 1999. §3.2.1 Elements.
  2. ^ "§3 On SGML and HTML". HTML 4.01 Specification. W3C. 24 December 1999. §3.1 Introduction to SGML.
  3. ^ "HTML 4.01, §21, Document Type Definition". W3C. 24 December 1999.
  4. ^ a b c d e "HTML Standard § Optional tags". WHATWG. Retrieved 22 March 2019.
  5. ^ "§1. Document Object Model HTML". Document Object Model (DOM) Level 2 HTML Specification. W3C. 9 January 2003. §1.3. XHTML and the HTML DOM.
  6. ^ a b "§7 The global structure of an HTML document". HTML 4.01 Specification. W3C. 24 December 1999. §7.5.3 Block-level and inline elements.
  7. ^ Mark Newhouse (27 September 2002). "CSS Design: Taming Lists". A List Apart.
  8. ^ XHTML 1.0 §4.2
  9. ^ XML 1.0 (The ability to produce additional elements is part of the eXtensibility in the acronym.)
  10. ^ XML 1.0 §5.1
  11. ^ WHATWGLS. § 15
  12. ^ XHTML 1.1 §A
  13. ^ "HTML & CSS". W3C. 2013.
  14. ^ "Appendix D. Default style sheet for HTML 4". Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. W3C. 7 June 2011.
  15. ^ HTML 4.01 §14.1
  16. ^ Ferraiolo, J.; Fujisawa, J.; Jackson, D., eds. (2003-01-14). "§2.3 Options for using SVG in Web pages". Scalable Vector Graphics (SVG) 1.1 Specification. W3C. Retrieved 2009-03-25.
  17. ^ HTML 4.01 §12.3
  18. ^ HTML 4.01 §14.3.2
  19. ^ HTML 4.01 §18
  20. ^ CSS §1.1
  21. ^ "4.4 Grouping content – HTML5". HTML5: A vocabulary and associated APIs for HTML and XHTML – W3C Recommendation. World Wide Web Consortium. 28 October 2014. §4.4.8 The dl element. Retrieved 16 August 2015.
  22. ^ "Lists in HTML documents". HTML 4.01 Specification – W3C Recommendation. World Wide Web Consortium. 24 December 1999. §10.3 Definition lists: the DL, DT, and DD elements. Retrieved 2 May 2015.
  23. ^ "HTML5: A Vocabulary and Associated APIs for HTML and XHTML, W3C Working Draft". W3C. 5 April 2011..
  24. ^ HTML 4.01, W3C, retrieved 2012-03-26
  25. ^ Tittel, Ed; Burmeister, Mary C. (2005). HTML 4 for dummies (5th ed.). Hoboken, New Jersey: Wiley. p. 96. ISBN 978-0-7645-8917-1. Retrieved 7 August 2022.
  26. ^ "ServerWriter -- /Provider". W3C.
  27. ^ "HTML 5.2". W3C.
  28. ^ Acronym tag, acronym.
  29. ^ 4.6 Text-level semantics — The b element, Developers.whatwg.org, retrieved 2012-03-26
  30. ^ 4.6 Text-level semantics — The i element, Developers.whatwg.org, retrieved 2012-03-26
  31. ^ 4.6 Text-level semantics — The u element, Developers.whatwg.org, retrieved 2012-03-26
  32. ^ 4.6 Text-level semantics — The small element, Developers.whatwg.org, retrieved 2012-03-26
  33. ^ 4.6 Text-level semantics — The s element, Developers.whatwg.org, retrieved 2012-03-26
  34. ^ a b 11 Obsolete features — HTML5, W3C, retrieved 2012-03-26
  35. ^ "HTML5 specification finalized, squabbling over specs continues". Ars Technica. 29 October 2014. Retrieved 29 October 2014.
  36. ^ "9.2.1 Phrase elements: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR, and ACRONYM". HTML 4.01 Specification. W3C. 24 December 1999. Retrieved 26 July 2018.
  37. ^ HTML 5.2 W3C Recommendation, at "§4.5.6. The cite element".
  38. ^ HTML Living Standard, at "§4.5.6 The cite element".
  39. ^ "<data>". MDN Web Docs.
  40. ^ "HTML <rb> Tag". www.quackit.com.
  41. ^ "<rp>: The Ruby Fallback Parenthesis element". MDN Web Docs.
  42. ^ "<rt>: The Ruby Text element". MDN Web Docs.
  43. ^ "<rtc>: The Ruby Text Container element". MDN Web Docs.
  44. ^ "<ruby>". MDN Web Docs.
  45. ^ "<template>". MDN Web Docs.
  46. ^ "<time>". MDN Web Docs.
  47. ^ "<wbr>". MDN Web Docs.
  48. ^ Jennifer Kyrnin Archived 2012-11-02 at the Wayback Machine <embed>
  49. ^ W3Schools about <embed>
  50. ^ The alt attribute's text cannot be styled with markup; as a result, other methods of alternative text presentation, such as Fahrner Image Replacement, have been devised to accommodate situations in which the coder wishes styled text to be displayed if images are disabled in a user's browser.
  51. ^ "What's New in Internet Explorer 8 – Accessibility and ARIA". MSDN. Microsoft. Retrieved 2009-07-22.
  52. ^ Bug 5566 – ALT attribute value sometimes not displayed when image is missing, Bugs.webkit.org, retrieved 2012-03-26
  53. ^ WWW-Talk Jan-Mar 1993: proposed new tag: IMG, 1997.webhistory.org, retrieved 2012-03-26
  54. ^ "Are frames accessible?". ...frames do present additional usability challenges that are unique to users with disabilities, particularly those who use screen readers.
  55. ^ "Objects, Images, and Applets". W3C. Retrieved 2008-12-20.
  56. ^ "InState Longdesc". Retrieved 2011-09-05.
  57. ^ "Creating Accessible Images". WebAim. Retrieved 2008-12-20.
  58. ^ Longdesc usage - WHATWG Wiki, Wiki.whatwg.org, retrieved 2012-03-26
  59. ^ "Bug 13461 - Commentary on Issue #30 (longdesc) from the Association of American Publishers". Retrieved 2011-09-05.
  60. ^ a b "Obsolete – Non-conforming features". HTML Living Standard. WHATWG. July 22, 2022. Retrieved August 7, 2022.
  61. ^ "<xmp>". MDN Web Docs. 24 February 2023.
  62. ^ a b Chisholm, Wendy; Vanderheiden, Gregg; Jacobs, Ian (1999-05-05). "Web Content Accessibility Guidelines 1.0". World Wide Web Consortium. Retrieved 2010-07-20.
  63. ^ "HTML standard". html.spec.whatwg.org.

Bibliography

HTML standards

HTML 2.0:
Berners-Lee, Tim; Connolly, Dan (November 1995). Hypertext Markup Language - 2.0 (RFC 1866). IETF. doi:10.17487/RFC1866. RFC 1866. Retrieved 2009-03-24.
HTML 3.2:
Raggett, Dave (1997-01-14). "HTML 3.2 Reference Specification". W3C. Retrieved 2009-03-27.
HTML 4.01:
Raggett, Dave; Le Hors, Arnaud; Jacobs, Ian (1999-12-24). "HTML 4.01 Specification". W3C. Retrieved 2009-03-24. (HTML 4.01 superseded 4.0 (1998), which was never widely implemented, and all earlier versions. Superseded in turn on 2018-03-27 by HTML 5.2).
XHTML 1.0:
"XHTML 1.0: The Extensible HyperText Markup Language (Second Edition)". Revised version. W3C. 2002-08-01 [2000]. Retrieved 2009-03-24.
XHTML 1.1:
Altheim, Murray; McCarron, Shane; Ishikawa, Masayasu, eds. (2010-11-23) [2001]. "XHTML 1.1 - Module-based XHTML - Second Edition". Revised version. W3C. Retrieved 2018-07-26. (Superseded on 2018-03-27 by HTML 5.2.)
Austin, Daniel; Peruvemba, Subramanian; McCarron, Shane; Ishikawa, Masayasu; Birbeck, Mark; Altheim, Murray; Boumphrey, Frank; Dooley, Sam; Schnitzenbaumer, Sebastian; Wugofski, Ted, eds. (2010-07-29) [2006]. "XHTML Modularization 1.1 - Second Edition". Revised version. W3C. Retrieved 2018-07-26. (A more detailed version of the above. Also superseded on 2018-03-27 by HTML 5.2.)
W3C HTML 5.2:
Faulkner, Steve; Eicholz, Arron; Leithead, Travis; Danilo, Alex; Moon, Sangwhan; Doyle Navara, Erika; O'Connor, Theresa; Berjon, Robin, eds. (2017-12-14) [2016]. "HTML 5.2 W3C Recommendation". Revised version. W3C. Retrieved 2018-07-26. Supersedes all previous versions of HTML and XHTML, including HTML 5.1.
WHATWG HTML5 Living Standard:
Hickson, Ian, ed. (2018-07-25). "HTML Living Standard". One-page Version. WHATWG. Retrieved 2018-07-26. Also available as a Multipage Version, and Developer's Edition (also multi-page, with a search function and other gadgets, and minus details only of interest to browser vendors).

Other sources

HTML Tags:
Berners-Lee, Tim (1992-11-03). "HTML Tags". Retrieved 2009-03-28. (Part of the first published description of HTML.)
HTML Internet Draft 1.2:
Berners-Lee, Tim; Connolly, Dan (June 1993). "Hypertext Markup Language (HTML)". Retrieved 2009-03-28.
HTML 3.0 Drafts:
Raggett, Dave (1995-03-24). "HyperText Markup Language Specification Version 3.0 (draft)". Retrieved 2009-04-18. (This is the final draft of HTML 3.0, which expired without being developed further.)
HTML Tables:
Raggett, Dave (May 1996). HTML Tables (RFC 1942). IETF. doi:10.17487/RFC1942. RFC 1942. Retrieved 2009-03-22.
XML 1.0:
Bray, Tim; Paoli, Jean; Sperberg-McQueen, C. Michael; Maler, Eve; Yergeau, François, eds. (2008-11-26). "Extensible Markup Language (XML) 1.0 (Fifth Edition)". W3C. Retrieved 2009-03-20.
CSS 1:
Lie, Håkon Wium; Bos, Bert (2008-04-11) [1996]. "Cascading Style Sheets, Level 1". Revised version. W3C. Retrieved 2018-07-26.
CSS 2.1:
Bos, Bert; Çelik, Tantek; Hickson, Ian; Lie, Håkon Wium (12 April 2016) [2011]. "Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification". Revised version. W3C. Retrieved 2018-07-26.
CSS 3 and 4:
Atkins, Tab Jr.; Eternad, Elika J.; Rivoal, Florian (31 January 2017). "CSS Snapshot 2017". W3C. §2. Cascading Style Sheets (CSS) – The Official Definition. Retrieved 2018-07-26. (List of active specifications that have superseded CSS 2.1, as of the publication date.)
"CSS Current Status". W3C. 2018. Retrieved 2018-07-26. (CSS levels 3 and 4 are developed as independent modules, indexed at that page.)

External links