空元素、可替换元素那点事

2018-09-13  本文已影响0人  达摩先森

空元素

一个空元素(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>` //指定用于一个文档中包含的所有相对URL的基本URL
* `<br>` //在文本中产生一个换行(回车键)
* `<col>` //定义表格中的列,并用于定义所有公共单元格上的公共语义
* `<colgroup>` //定义表中的一组列表
* `<command>` //表示一个用户可以调用的命令
* `<embed>` //表示一个外部应用或交互式内容的集合点,换句话说,就是一个插件
* `<hr>` //表示段落级元素之间的主题转换
* `<img>` //代表文档中的一个图像
* `<input>` //用于为基于Web的表单创建交互式控件,以便接受来自用户的数据
* `<keygen>` //为了方便生成密钥材料和提交作为HTML form的一部分的公钥
* `<link>` //指定了外部资源与当前文档的关系
* `<meta>` //表示那些不能由其它HTML元相关元素之一表示的任何元数据信息
* `<param>` //定义了 <object>的参数
* `<source>` //为媒体元素(比如 <video> 和 <audio>)定义媒体资源
* `<track>` //被当作媒体元素(比如<audio> 和 <video>)的子元素来使用
* `<wbr>` //一个文本中的位置,其中浏览器可以选择来换行,虽然它的换行规则可能不会在这里换行

可替换元素

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

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

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

上一篇下一篇

猜你喜欢

热点阅读