Модель содержимого
- Модель содержимого
ничего
- Категории содержимого
- Дополнительные категории контента
- Прозрачная модель содержимого
Модель содержимого (модель контента) — это описание того, какой тип содержимого может быть внутри HTML-элемента. Содержимое элемента — это его дочерние элементы и текст. Пробелы между элементами и комментарии не относятся к содержимому элемента.
Каждый HTML-элемент имеет модель содержимого. Элемент должен иметь содержимое, которое соответствует требованиям, описанным в модели содержимого элемента.
Модель содержимого ничего
Если модель содержимого элемента ничего
, элемент не должен содержать текст и любые другие элементы.
Категории содержимого
Каждый элемент в HTML может принадлежать к одной или нескольким категориям, которые объединяют элементы с похожими характеристиками. Некоторые элементы имеют уникальные характеристики и не вписываются ни в одну конкретную категорию.
Спецификация HTML выделяет следующие основные категории содержимого:
- Метаданные
- Потоковое содержимое
- Секционное содержимое
- Заголовочное содержимое
- Фразовое содержимое
- Встроенное содержимое
- Интерактивное содержимое
Используя круги Эйлера мы можем показать взаимные отношения категорий следующим образом:
Метаданные — это элементы, которые содержат информацию об HTML-документе, отвечают за внешний вид или поведение контента на веб-странице, или устанавливают связь HTML-документа с другими документами.
Элементами метаданных являются: <base>, <link>, <meta>, <noscript>, <script>, <style>, <template>, <title>.
Потоковое содержимое — это содержимое, используемое в body.
К данной категории относятся: <a>, <abbr>, <address>, <area>, <article>, <aside>, <audio>, <b>, <bdi>, <bdo>, <blockquote>, <br>, <button>, <canvas>, <cite>, <code>, <data>, <datalist>, <del>, <details>, <dfn>, <dialog>, <div>, <dl>, <em>, <embed>, <fieldset>, <figure>, <footer>, <form>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <header>, <hgroup>, <hr>, <i>, <iframe>, <img>, <input>, <ins>, <kbd>, <label>, <link>, <main>, <map>, <mark>, <math>, <menu>, <meta>, <meter>, <nav>, <noscript>, <object>, <ol>, <output>, <p>, <picture>, <pre>, <progress>, <q>, <ruby>, <s>, <samp>, <script>, <search>, <section>, <select>, <slot>, <small>, <span>, <strong>, <sub>, <sup>, <svg>, <table>, <template>, <textarea>, <time>, <u>, <ul>, <var>, <video>, <wbr>, текст.
Секционное содержимое — это элементы, которые определяют разделы (секции) внутри документа, каждый из которых может содержать заголовок.
К данной категории относятся: <article>, <aside>, <nav>, <section>.
Заголовочное содержимое — заголовки разделов, размеченных явно с помощью элементов секционного содержимого, либо body.
Элементами данной категории являются: <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <hgroup>.
Фразовое содержимое — текст, а также элементы, размечающие этот текст.
К данной категории относятся: <a>, <abbr>, <area>, <audio>, <b>, <bdi>, <bdo>, <br>, <button>, <canvas>, <cite>, <code>, <data>, <datalist>, <del>, <dfn>, <em>, <embed>, <i>, <iframe>, <img>, <input>, <ins>, <kbd>, <label>, <link>, <map>, <mark>, <math>, <meta>, <meter>, <noscript>, <object>, <output>, <picture>, <progress>, <q>, <ruby>, <s>, <samp>, <script>, <select>, <slot>, <small>, <span>, <strong>, <sub>, <sup>, <svg>, <template>, <textarea>, <time>, <u>, <var>, <video>, <wbr>, текст.
Встроенное содержимое — это содержимое, встраивающее другой контент извне (другие сайты, файлы, скрипты).
Элементы данной категории: <audio>, <canvas>, <embed>, <iframe>, <img>, <math>, <object>, <picture>, <svg>, <video>.
Интерактивное содержимое — это содержимое, специально предназначенное для взаимодействия с пользователем.
Элементы данной категории: <a> (если указан атрибут href), <audio>, <button>, <details>, <embed>, <iframe>, <img>, <input>, <label>, <select>, <textarea>, <video>.
Дополнительные категории содержимого
Явное содержимое — это содержимое, которое отображается на веб-странице. Содержимое считается явным, когда оно не скрыто и не является пустым. Явное содержимое делает элемент непустым. Это обеспечивается тем, что элемент содержит текст или какое-либо содержимое, которое пользователь может видеть или слышать. Элементы, чья модель содержимого допускает потоковое или фразовое содержимое, должны иметь явное содержимое.
К данной категории относятся: <a>, <abbr>, <address>, <article>, <aside>, <audio>, <b>, <bdi>, <bdo>, <blockquote>, <button>, <canvas>, <cite>, <code>, <data>, <del>, <details>, <dfn>, <div>, <dl>, <em>, <embed>, <fieldset>, <figure>, <footer>, <form>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <header>, <hgroup>, <i>, <iframe>, <img>, <input>, <ins>, <kbd>, <label>, <main>, <map>, <mark>, <math>, <menu>, <meter>, <nav>, <object>, <ol>, <output>, <p>, <picture>, <pre>, <progress>, <q>, <ruby>, <s>, <samp>, <search>, <section>, <select>, <small>, <span>, <strong>, <sub>, <sup>, <svg>, <table>, <textarea>, <time>, <u>, <ul>, <var>, <video>, текст.
Элементы, поддерживающие скрипты — это элементы, которые сами по себе ничего не представляют (т. е. не отображаются), но используются для поддержки скриптов.
Элементы этой категории: <script>, <template>.
Текст. Если в модели содержимого указан текст, то в качестве содержимого элемента может быть только текст, код спецсимволов или ничего.
Прозрачная модель содержимого
Некоторые элементы имеют прозрачную модель содержимого. Это означает, что модель содержимого элемента такая же, как у его родительского элемента.
Элементы с прозрачной моделью содержимого: <a>, <audio>, <canvas>, <del>, <ins>, <map>, <object>, <video>.