空元素(empty element)和可替换元素(Replaced element)

空元素(empty element)

一个空元素(empty element)可能是 HTML,SVG,或者 MathML 里的一个不可能存在子节点(例如内嵌的元素或者元素内的文本)的element

HTML,SVG 和 MathML 的规范都详细定义了每个元素能包含的具体内容(define very precisely what each element can contain)。许多组合是没有任何语义含义的,比如一个 <audio> 元素嵌套在一个 <hr> 元素里。

在 HTML 中,通常在一个空元素上使用一个闭标签是无效的。例如, <input type="text"></input>的闭标签是无效的 HTML。

在 HTML 中有以下这些空元素:

<area>
<base>
<br>
<col>
<colgroup> when the span is present
<command>
<embed>
<hr>
<img>
<input>
<keygen>
<link>
<meta>
<param>
<source>
<track>
<wbr>

可替换元素(Replaced element)

概述

CSS 里,可替换元素(replaced element)的展现不是由CSS来控制的。这些元素是一类 外观渲染独立于CSS的 外部对象。 典型的可替换元素有 <img><object><video> 和 表单元素,如<textarea><input> 。 某些元素只在一些特殊情况下表现为可替换元素,例如 <audio><canvas> 。 通过 CSS content 属性来插入的对象 被称作 匿名可替换元素(anonymous replaced elements)。

CSS在某些情况下会对可替换元素做特殊处理,比如计算外边距和一些auto值。

需要注意的是,一部分(并非全部)可替换元素,本身具有尺寸和基线(baseline),会被像vertical-align之类的一些 CSS 属性用到。

原文:空元素
可替换元素