关于 ':before' 和 ':after' 伪元素 css
':before' 和 ':after' 伪元素用来在一个元素的内容以前或以后插入生成的内容。 html
关于 ‘:before’ 和 ‘:after’ 伪元素的详细信息,请参考 CSS2.1 规范 5.12.3 The :before and :after pseudo-elements 和 12.1 The :before and :after pseudo-elements 中的内容。 jquery
CSS 2.1 规范中描述的 ':before' 和 ':after' 伪元素,在 CSS 1 历史规范中均无规定,这致使早期版本的浏览器,如:IE6 IE7 IE8(Q) 不支持他们。 浏览器
使用了 ':before' 和 ':after' 伪元素,可能会使页面在 IE6 IE7 IE8(Q) 中的效果不尽人意。 测试
IE6 IE7 IE8(Q) |
---|
对于此问题,咱们经过如下的测试用例来讲明。 spa
分析如下代码: 插件
<style type="text/css"> p:before { content: "before"; } p:after { content: "after"; } </style> <p> Aloha! </p>
根据 CSS2.1 规范中的描述可知,最终页面上显示的文本应该是 'before Aloha! after'。 code
这段代码在不一样的浏览器环境中的表现: orm
IE6 IE7 IE8(Q) | IE8(S) Firefox Opera Safari Chrome |
---|---|
![]() |
![]() |
因此对于 ':before' 和 ':after' 伪元素的支持状况,以下表: htm
IE6 | IE7 | IE8(Q) | IE8(S) | Firefox | Safari | Opera | Chrome |
---|---|---|---|---|---|---|---|
N | N | N | Y | Y | Y | Y | Y |
【注】:实际中其余除经常使用 HTML 标记一样适用于次例,并不是仅 P 标记自身不支持。
使用 JavaScript 或 jQuery 的 Pseudo Plugin 插件来模拟 ':before' 及 ':after' 伪元素的效果。