在this MS compatibility table上,它说IE9不支持伪元素::before和::after,但当我尝试时,它似乎支持……请参阅JSBin
我做错了什么吗?我认为::before和::after会是对IE9隐藏东西的很好的工具,但实际上他们不是。
发布于 2011-08-23 15:10:34
IE8及更高版本支持使用传统单冒号表示法的CSS2伪元素:before和:after。它们对CSS3来说并不新鲜。
另一方面,双冒号表示法是new to CSS3。对于::before和::after,IE9确实支持这种新的表示法,对于CSS1伪元素::first-line和::first-letter也是如此。然而,展望未来,没有新的伪元素可以使用单冒号语法,浏览器(包括IE)应该支持所有伪元素的双冒号语法。
我不知道为什么该表显示IE9不支持新的伪元素语法,因为根据上面链接的各个选择器的文档和您的测试用例,它肯定支持这种语法。当然,还有这个答案。
发布于 2013-01-04 03:36:54
IE9在“标准模式”中支持符号::after和::before (带有两个冒号)。在“怪癖模式”中,它不会。例如,可以按如下方式进行测试:
<style>
p::after {
content: "***AFTER***";
}
</style>
<p>Hello world 这里忽略了CSS规则,因为IE9进入了quirks模式。但是,如果您在最开始添加以下行,IE 9将转到标准模式,CSS规则将生效:
<!doctype html>在IE9中,通常在quirks mode中不支持新的CSS特性(大多数特性既不在CSS2.1中,也不在IE遗留版本中)。在怪癖模式下,IE9也不支持旧的单冒号符号:after和:before。它在“IE 8模式”中支持它们(但不支持两个冒号的版本),您可以在开发人员工具(F12)中手动选择,在“文档模式”菜单中选择,或者使用标签<meta http-equiv="X-UA-Compatible" content="IE=8">在文档级选择。
发布于 2013-06-19 16:01:52
引用自http://www.w3.org/community/webed/wiki/Advanced_CSS_selectors
CSS3伪元素双冒号语法请注意,编写伪元素的新CSS3方法是使用双冒号,例如a::after { ... },以将它们与伪类区分开来。你有时会在CSS中看到这一点。但是,为了向后兼容,CSS3仍然允许使用单个冒号伪元素,我们建议您暂时坚持使用这种语法。
https://stackoverflow.com/questions/7157405
复制相似问题