CSS2.1伪选择器如::after
and ::before
允许向页面添加文本内容。例如 :
CSS
p:after { content:' Batman!' }
HTML
<p>Na Na Na Na Na Na</p>
浏览器中的输出
Na Na Na Na Na Na Batman!
我的问题是,使用相同的 HTML 源代码,为什么会这样CSS 的一部分
p { content:'My hero is' }
p:after { content:' Batman!' }
不输出这个
My hero is Batman!
而是输出这个?
Na Na Na Na Na Na Batman!
关于内容属性的 w3c 规范:http://www.w3.org/TR/CSS21/generate.html#propdef-content
Answer- 我正在查看 CSS2.1 规范。这CSS3 规范表明即使没有也有可能::after
and ::before
伪选择器。但并不是每个浏览器都实现它。
-
铬20.0.1132.57 : NO
-
歌剧 12.00 r1467 : YES
-
Safari 5.1.7 (7534.57.2) : NO
-
浏览器8.0.7601: 否(CSS2 内容属性甚至没有实现)
引用的 CSS 2.1 规范说:“适用于::before 和 :after 伪元素”。草案中放宽了这一限制CSS3 生成和替换的内容模块,这是旧的(2003)并且已经过时,但仍然部分实现。 Opera好像支持content
对于普通元素,除了使用 URL 值(用于插入图像),而 Chrome 和 Safari 也是如此only对于 URL 值。所以你的代码实际上可以在 Safari 上运行。
除非该模块的规范工作取得一些进展,否则不太可能获得更广泛的支持。在 W3C 上CSS 模块状态页面,该模块位于“重写”部分,并注明“严重过时”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)