Content Models
List of HTML tags by content model
The content model of an HTML element specifies what HTML code can appear inside the element.
HTML Elements - Content Model: Void
These HTML elements are not allowed to have any content, not even HTML comments and therefore are coded using the self-closing standalone tag syntax (ending with the delimiter string />
rather than just >
).
- <area/>
- <base/>
- <br/>
- <col/>
- <command/>
- <device/>
- <embed/>
- <hr/>
- <img/>
- <input>
- <keygen/>
- <link/>
- <meta/>
- <param/>
- <source/>
- <wbr/>
HTML Elements - Content Model: Empty
These HTML elements expect content consisting of nothing other than possibly HTML comments and white space.
HTML Elements - Content Model: Text Content
These HTML elements expect content consisting of nothing other than text and possibly HTML comments and white space.
HTML Elements - Content Model: Transparent Content
The inner HTML of these HTML elements can include flow content elements when used where flow content is allowed but is restricted to phrasing content when used where phrasing content is expected. In some cases, these elements can even contain metadata content when used where metadata content is expected.
HTML Elements - Content Model: Metadata Content
These HTML elements expect content consisting of metadata content.
HTML Elements - Content Model: Flow Content
These HTML elements expect content consisting of flow content or have a transparent content model that allows flow content when used where flow content is allowed.
- <a href="..."> in flow content
- <address>
- <article>
- <aside>
- <audio> in flow content
- <blockquote>
- <body>
- <canvas> in flow content
- <del> in flow content
- <details>
- <div>
- <dl>
- <fieldset>
- <figure>
- <footer>
- <form>
- <header>
- <ins> in flow content
- <map> in flow content
- <menu>
- <nav>
- <noscript> in flow content
- <object> in flow content
- <ol>
- <p>
- <pre>
- <section>
- <table>
- <ul>
- <video> in flow content
HTML Elements - Content Model: Phrasing Content
These HTML elements restrict the inner HTML of the element to phrasing content or have a transparent content model that is restricted to phrasing content when used where phrasing content is expected.
- <a href="...">... phrasing content ...</a>
- <abbr>
- <audio>... phrasing content ...</audio>
- <b>
- <bdi>
- <bdo>
- <button>
- <canvas>... phrasing content ...</canvas>
- <cite>
- <code>
- <del>... phrasing content ...</del>
- <datalist>
- <dfn>
- <em>
- <hn> heading tags
- <i>
- <ins>... phrasing content ...</ins>
- <kbd>
- <label>
- <mark>
- <map>... phrasing content ...</map>
- <math>
- <meter>
- <noscript>... phrasing content ...</noscript>
- <object>... phrasing content ...</object>
- <output>
- <progress>
- <p>
- <ruby>
- <s>
- <samp>
- <script>
- <select>
- <small>
- <span>
- <strong>
- <sub>
- <sup>
- <svg>
- <textarea>
- <time>
- <u>
- <var>
- <video>... phrasing content ...</video>