Модель содержимого
- Модель содержимого
ничего
- Категории содержимого
- Дополнительные категории контента
- Прозрачная модель содержимого
Модель содержимого (модель контента) — это описание того, какой тип содержимого может быть внутри 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>
, <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>
.