空元素
一個空元素(empty element)可能是 HTML,SVG,或者 MathML 里的一個不可能存在子節(jié)點(例如內(nèi)嵌的元素或者元素內(nèi)的文本)的element。
HTML,SVG和 MathML的規(guī)范都詳細(xì)定義了每個元素能包含的具體內(nèi)容(define very precisely what each element can contain)。許多組合是沒有任何語義含義的,比如一個 <audio> 元素嵌套在一個 <hr>元素里。
在 HTML 中,通常在一個空元素上使用一個閉標(biāo)簽是無效的。例如: <input type="text"></input> 的閉標(biāo)簽是無效的 HTML。
在 HTML 中有以下這些空元素:
* `<area>` //在圖片上定義一個熱點區(qū)域
* `<base>` //指定用于一個文檔中包含的所有相對URL的基本URL
* `<br>` //在文本中產(chǎn)生一個換行(回車鍵)
* `<col>` //定義表格中的列,并用于定義所有公共單元格上的公共語義
* `<colgroup>` //定義表中的一組列表
* `<command>` //表示一個用戶可以調(diào)用的命令
* `<embed>` //表示一個外部應(yīng)用或交互式內(nèi)容的集合點,換句話說,就是一個插件
* `<hr>` //表示段落級元素之間的主題轉(zhuǎn)換
* `<img>` //代表文檔中的一個圖像
* `<input>` //用于為基于Web的表單創(chuàng)建交互式控件,以便接受來自用戶的數(shù)據(jù)
* `<keygen>` //為了方便生成密鑰材料和提交作為HTML form的一部分的公鑰
* `<link>` //指定了外部資源與當(dāng)前文檔的關(guān)系
* `<meta>` //表示那些不能由其它HTML元相關(guān)元素之一表示的任何元數(shù)據(jù)信息
* `<param>` //定義了 <object>的參數(shù)
* `<source>` //為媒體元素(比如 <video> 和 <audio>)定義媒體資源
* `<track>` //被當(dāng)作媒體元素(比如<audio> 和 <video>)的子元素來使用
* `<wbr>` //一個文本中的位置,其中瀏覽器可以選擇來換行,雖然它的換行規(guī)則可能不會在這里換行
可替換元素
CSS 里,可替換元素(replaced element)的展現(xiàn)不是由CSS來控制的。這些元素是一類外觀渲染獨立于CSS的外部對象。典型的可替換元素有<img>、<object>、<video>和表單元素,如<textarea>、<input>。某些元素只在一些特殊情況下表現(xiàn)為可替換元素,例如<audio>和<canvas>。通過 CSScontent屬性來插入的對象被稱作 匿名可替換元素(anonymous replaced elements)。
CSS在某些情況下會對可替換元素做特殊處理,比如計算外邊距和一些auto值。
需要注意的是,一部分(并非全部)可替換元素,本身具有尺寸和基線(baseline),會被像vertical-align之類的一些 CSS 屬性用到。