Учебник по программированию на HTML

HTML в примерах

HTML в примерах

Классификация элементов HTML

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

Элементы HTML можно классифицировать на три основные категории:

  • заголовочные элементы, т.е. элементы, используемые в элементе HEAD ("шапка", заголовок) и содержащие информацию о документе в целом: TITLE, ISINDEX, BASE, META, LINK, SCRIPT, STYLE
  • блоковые элементы, включающие элементы, которые специфицируют структуру документа, например, разделение на части и параграфы (абзацы): H1, H2, H3, H4, H5, H6, ADDRESS, и элементы P, UL, OL, DL, PRE, DIV, CENTER, BLOCKQUOTE, FORM, ISINDEX, HR, TABLE
  • текстовые элементы. Текстовыми элементами могут быть:
    • простой текст, возможно содержащий escape последовательности (например, &)
    • выражения разметки: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE
    • разметка шрифта: TT, I, B, U, STRIKE, BIG, SMALL, SUB, SUP
    • специальные элементы: A, IMG, APPLET, FONT, BASEFONT, BR, SCRIPT, MAP
    • элементы формы: INPUT, SELECT, TEXTAREA

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

Правило "большого пальца", которое может помочь в запоминании того, какой элемент — блоковый, а какой — текстовый: блоковые элементы завершают абзац, текстовые — нет.

Заметьтe: часто блоковые элементы могут содержать как текстовые, так и другие блоковые элементы, например, блоки могут быть вложенными. Текстовые элементы также могут быть вложенными. Но текстовые элементы не могут включать блоковые элементы. Например, выражение

<CITE><H3>Origin of Species</H3></CITE>

неверно (так как CITE — текстовый элемент, а H3  — блоковый элемент) и к тому же нелогично (Вы не можете придать заголовку, как структуре, значение цитаты, так ведь?). Тогда как запись

<H3><CITE>Origin of Species</CITE></H3>

была бы правильной, хотя отдельные броузеры воспринимают это с трудом. Еще одни пример: не заголовок (headings) вставляется в атрибут NAME тега A, а наоборот. Так же было бы неверно иметь завершение абзаца (тег P) в пределах, например, элемента STRONG. Хотя некоторые броузеры понимают это, семантика этого сомнительна, и Вы должны были бы использовать отдельные начальные и конечные теги STRONG в пределах каждого абзаца (если Вы действительно желаете выделить такие большие порции текста!).