IE9是否支持CSS3::before和::after伪元素?

IE9是否支持CSS3::before和::after伪元素?,css,internet-explorer-9,css-selectors,pseudo-element,Css,Internet Explorer 9,Css Selectors,Pseudo Element,上面说,IE9不支持伪元素::before和::after,但当我尝试时,它似乎支持。。。看 我做错什么了吗?我认为::before和::after是很好的工具,可以对IE9隐藏内容,而事实上它们没有。CSS2伪元素:before和:after,使用传统的单冒号表示法,得到IE8和更高版本的支持。对于CSS3来说,它们并不陌生 另一方面,双冒号表示法是。IE9确实支持and的这种新符号,同样也支持CSS1伪元素和。然而,展望未来,没有任何新的伪元素可以使用单冒号语法,浏览器(包括IE)预计将支持

上面说,IE9不支持伪元素
::before
::after
,但当我尝试时,它似乎支持。。。看


我做错什么了吗?我认为
::before
::after
是很好的工具,可以对IE9隐藏内容,而事实上它们没有。

CSS2伪元素
:before
:after
,使用传统的单冒号表示法,得到IE8和更高版本的支持。对于CSS3来说,它们并不陌生

另一方面,双冒号表示法是。IE9确实支持and的这种新符号,同样也支持CSS1伪元素和。然而,展望未来,没有任何新的伪元素可以使用单冒号语法,浏览器(包括IE)预计将支持所有伪元素的双冒号语法


我不知道为什么该表说IE9不支持新的伪元素语法,因为根据上面链接的各个选择器的文档和您的测试用例,它当然支持。当然,还有这个答案。

IE 9支持“标准模式”中的符号
:after
::before
(带两个冒号)。在“怪癖模式”中,它不会。可进行如下测试:

<style>
p::after  {  
  content: "***AFTER***";  
} 
</style>
<p>Hello world 

p::在{
内容:“***”之后的***”;
} 
你好,世界
这里CSS规则被忽略,因为IE9进入了怪癖模式。但如果您在一开始就添加以下行,IE 9将进入标准模式,CSS规则将生效:

<!doctype html>

在IE9中,新的CSS功能(大多数既不在CSS 2.1中也不在IELegacy中的功能)不受支持是很常见的。在quirks模式下,IE 9也不支持旧的单冒号符号
:after
:before
。它在“IE 8模式”下支持它们(但不支持两个冒号版本),您可以在开发者工具(F12)中手动选择,也可以在“文档模式”菜单中选择,或者在文档级别使用标签

CSS3伪元素双冒号语法 请注意,新的CSS3 编写伪元素的方法是使用双冒号,例如a::after{ ,将它们与伪类区分开来。你可以看到这个 有时在CSS中。但是CSS3仍然允许使用单冒号 伪元素,为了向后兼容,我们将 建议您暂时使用此语法


CSS2.1和CSS3以及冒号和双冒号之间存在差异。在CSS3中,双冒号用于伪元素,而单冒号仅用于伪选择器。在CSS2.1中,单冒号表示两者。@Rob:“而单冒号仅用于伪类。”双冒号和单冒号的引入正是因为人们将伪元素和伪类组合在一起,形成了一个称为“伪选择器”的令人困惑的总括术语而用一个冒号来表示两者。检查图表下方的“已知问题”选项卡。@inhan:它没有说明任何关于IE9的内容。@BoltClock我的错,对不起@inhan:里面也没有关于IE9的内容…@BoltClock看看IE栏,看看版本号。我可以发布一个截图吗?这不是完全正确的:因为IE在你文章中提到的怪癖模式下的行为与版本4或5相似,该版本不支持的任何内容都将在任何更高版本的IE的quirks模式下丢失。这意味着在任何版本的IE上,在quirks模式下都不支持新旧符号中的
:after
:before
。此外,请注意,IE8+中的兼容性模式与quirks模式在这方面有显著不同兼容性模式模拟IE7,而怪癖模式模拟IE4/5。@BoltClock,谢谢,我已更正,并将相应地编辑我的答案。