內容類型
每個 HTML 元素都要遵從該元素可擁有何種內容規則,這些規則被歸為幾種常用的內容模型(content model)。每個 HTML 元素都屬於零個、一個、或數個內容的模型,所有元素內容的設置規則都要遵從 HTML 一致性文件。
內容類型有三種類型:
- 主要內容類型(Main content category)描述了許多元素共享的常見內容規則(content rule)。
- 表單相關內容類型(Form-related content category)描述了表單相關元素的內容規則。
- 特別內容類型(Specific content category)描述了只有少數元素共享的內容規則,有時甚至只有特定上下文。
主要內容類型
元資訊內容
屬於元資訊內容(Metadata content)類型的元素修飾該文件其餘部分的陳述或行為、與其他文件建立連結、或是傳達其他外來(out of band)訊息。
屬於這個類型的元素有 <base>
、<link>
(en-US)、<meta>
(en-US)、<noscript>
、<script>
、<style>
(en-US) 與 <title>
。
流內容
屬於流內容(Flow content)的元素通常含有文字或嵌入內容。它們是:
<a>
<abbr>
<address>
<article>
<aside>
<audio>
<b>
<bdo>
<bdi>
<blockquote>
<br>
<button>
<canvas>
<cite>
<code>
<data>
<datalist>
<del>
<details>
<dfn>
<dialog>
(en-US)<div>
<dl>
<em>
<embed>
<fieldset>
<figure>
<footer>
<form>
<h1>
-<h6>
<header>
<hgroup>
<hr>
<i>
<iframe>
(en-US)<img>
(en-US)<input>
(en-US)<ins>
<kbd>
(en-US)<label>
(en-US)<main>
(en-US)<map>
<mark>
(en-US)<math> (en-US)
<menu>
(en-US)<meter>
(en-US)<nav>
<noscript>
<object>
(en-US)<ol>
(en-US)<output>
(en-US)<p>
<picture>
<pre>
<progress>
<q>
<ruby>
<s>
(en-US)<samp>
<search>
<script>
<section>
<select>
(en-US)<slot>
(en-US)<small>
<span>
<strong>
(en-US)<sub>
(en-US)<sup>
(en-US)<svg>
(en-US)<table>
<template>
<textarea>
(en-US)<time>
<u>
(en-US)<ul>
<var>
<video>
(en-US)<wbr>
- 純文本
在滿足特定條件下,某些元素也屬這個類型:
<area>
,如果它是<map>
元素的後代。<link>
(en-US),如果 itemprop (en-US) 屬性存在。<meta>
(en-US),如果 itemprop (en-US) 屬性存在。<style>
(en-US),如果scoped
已棄用 屬性存在。
章節型內容
標題型內容
段落型內容
段落型內容(Phrasing content)定義了文字、還有它包含的標記。段落型內容構成段落。
屬於這個類型的元素有:
<abbr>
<audio>
<b>
<bdi>
<bdo>
<br>
<button>
<canvas>
<cite>
<code>
<data>
<datalist>
<dfn>
<em>
<embed>
<i>
<iframe>
(en-US)<img>
(en-US)<input>
(en-US)<kbd>
(en-US)<label>
(en-US)<mark>
(en-US)<math> (en-US)
<meter>
(en-US)<noscript>
<object>
(en-US)<output>
(en-US)<picture>
<progress>
<q>
<ruby>
<s>
(en-US)<samp>
<script>
<select>
(en-US)<slot>
(en-US)<small>
<span>
<strong>
(en-US)<sub>
(en-US)<sup>
(en-US)<svg>
(en-US)<template>
<textarea>
(en-US)<time>
<u>
(en-US)<var>
<video>
(en-US)<wbr>
- 包含空白字符在內的純文本
在滿足特定條件下,某些元素也屬這個類型:
<a>
,如果它只包含段落型內容。<area>
,如果它是<map>
元素的後代。<del>
,如果它只包含段落型內容。<ins>
,如果它只包含段落型內容。<link>
(en-US),如果 itemprop (en-US) 屬性存在。<map>
,如果它只包含段落型內容。<meta>
(en-US),如果 itemprop (en-US) 屬性存在。
嵌入型內容
嵌入型內容(Embedded content)從其他標記語言或文件命名空間,導入資源或插入內容。屬於這個類型的元素有:
互動型內容
互動型內容(Interactive content)包含專為用戶互動設計的元素。屬於這個類型的元素有:
在滿足特定條件下,某些元素也屬這個類型:
<a>
,如果href
屬性存在。<audio>
,如果controls
屬性存在。<img>
(en-US),如果usemap
(en-US) 屬性存在。<input>
(en-US),如果type
(en-US) 屬性不是隱藏狀態。<object>
(en-US),如果usemap
(en-US) 屬性存在。<video>
(en-US),如果controls
(en-US) 屬性存在。
捫及內容
不是空白或隱藏的內容稱為捫及內容(Palpable content)。屬於流內容或是段落型內容模型的元素最少要有一個捫及的節點。
表單相關內容
表單相關內容(Form-associated content)包含了由 form 屬性顯露的 form owner 元素。form owner 是本身包含於 <form>
或 id 由 form 屬性指定的元素。
<button>
<fieldset>
<input>
(en-US)<label>
(en-US)<meter>
(en-US)<object>
(en-US)<output>
(en-US)<progress>
<select>
(en-US)<textarea>
(en-US)
本類型包含某些子類別:
- listed
-
form.elements
(en-US) 和fieldset.elements
集合中列出的元素。包含<button>
、<fieldset>
、<input>
(en-US)、<object>
(en-US)、<output>
(en-US)、<select>
(en-US)、<textarea>
(en-US)。 - labelable
-
與元素
<label>
(en-US) 相關的元素。包含<button>
、<input>
(en-US)、<meter>
(en-US)、<output>
(en-US)、<progress>
、<select>
(en-US)、<textarea>
(en-US)。 - submittable
-
用在建構送出時,資料就設定好的表單元素。包含
<button>
、<input>
(en-US)、<object>
(en-US)、<select>
(en-US)、<textarea>
(en-US)。 - resettable
-
當表單重設時會受影響的元素。包含
<input>
(en-US)、<output>
(en-US)、<select>
(en-US)、<textarea>
(en-US)。