HTML Content Models
HTML Content Models
HTML document is represented with a Document object (DOM) and it has his own
address called URL. HTML document consists of a series of HTML elements.The HTML
elements have theirs own content model: a description of the element’s expected
contents. The contents of an element are its children in DOM. That means that every
HTML element must have a content that abides established rules. As a result there are
several content categories into which the HTML elements fall.
There are seven major content models:
1. Metadata Content
2. Flow Content
3. Sectioning Content
4. Phrasing Content
5. Heading Content
6. Embedded Content
7. Interactive Content
The HTML element may be located in one or more categories or may be not included
to any category. For example, all the HTML header elements and the HTML sectioning
elements also belong to the HTML flow elements, some the HTML phrasing element
belong to the flow elements.
Metadata content defines the HTML elements that establish the presentation and
behaviour of the rest of the document’s content or set up the relationship between the
document and other external documents. Contains information about the page: styles,
scripts and all data that are used to render the web page. Majority of these elements
are placed in the HTML <head> element of the document.
<base>, <link>, <meta>, <nonscript>, <script>, <style>, <template>, <title>
Flow content defines most element that are used in body of documents.
<a>, <abbr>, <address>, <area> (if it is a descendant of a map element) <article>,
<aside>, <audio>, <b>, <bdi>, <bdo>, <blockquote>, <br>, <button>, <canvas>, <cite>,
<code>, <data>, <datalist>, <del>, <details>, <dfn>, <div>, <dl>, <em>, <embed>,
<fieldset>, <figure>, <footer>, <form>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <header>,
<hr>, <i>, <iframe>, <img>, <input>, <ins>, <kbd>, <keygen>, <label>, <main>, <map>,
<mark>, <math>, <menu>, <meter>, <nav>, <noscript>, <object>, <ol>, <output>,
<p>, <picture>, <pre>, <progress>, <q>, <ruby>, <s>, <samp>, <script>, <section>,
<select>, <small>, <span>, <strong>, <sub>, <sup>, <svg>, <table>, <template>,
<textarea>, <time>, <u>, <ul>, <var>, <video>, <wbr>
Sectioning content defines elements that allow to organize document into logical
structure. The HTML sectioning content elements create outline that defines the scope
of <header> and <footer> elements, and heading content (<h1-h6>).
<article>, <aside>, <nav>, <section>
Phrasing content defines elements that content is text of the document or
elements that mark up that text at the intra-paragraph level. The HTML elements that
belong to this category are the same that used to belong to the HTML inline elements.
<a>, <abbr>, <area> (if it is a descendant of a map element) <audio>, <b>, <bdi>,
<bdo>, <br>, <button>, <canvas>, <cite>, <code>, <data>, <datalist>, <del>, <dfn>,
<em>, <embed>, <i>, <iframe>, <img>, <input>, <ins>, <kbd>, <keygen>, <label>,
<map>, <mark>, <math>, <meter>, <noscript>, <object>, <output>, <picture>,
<progress>, <q>, <ruby>, <s>, <samp>, <script>, <select>, <small>, <span>, <strong>,
<sub>, <sup>, <svg>, <template>, <textarea>, <time>, <u>, <var>, <video>, <wbr>
Embedded content defines elements that their content is imported from other
resources. Some embedded content elements can have fallback content in case if
external reosurces can not be used.
<audio>, <canvas>, <embed>, <iframe>, <img>, <math>, <object>, <picture>, <svg>,
<video>
Interactive content defines elements that are designed for users interaction.
<a> ( if the href attribute is present), <audio> (if the controls attribute is present),
<button>, <details>, <embed>, <ifreame>, <img> (if the usemap attribure is present),
<input> (if the type attribute is not in the hidden state), <keygen>, <label>, <select>,
<textarea>, <video> (if the controls attribute is present)