IE9是否支持CSS3 ::之前和::之后的伪元素?

fre*_*ent 12 css css-selectors css3 pseudo-element internet-explorer-9

此MS兼容性表,它说,IE9不支持伪元素::before::after,但是当我尝试它似乎它......看到JSBin

难道我做错了什么?我认为::before并且::after是隐藏IE9内容的好工具,事实上,他们没有.

Bol*_*ock 27

IE8和更高版本支持CSS2伪元素:before:after传统的单冒号表示法.他们不是CSS3的新手.

另一方面,双冒号表示法是CSS3的新功能.IE9 支持这种新的记法::before::after,且同样CSS1伪元素::first-line::first-letter.然而,展望未来,没有新的伪元素可以使用单冒号语法,并且期望浏览器(包括IE)支持所有伪元素的双冒号语法.

我不知道为什么那个表说IE9不支持新的伪元素语法,因为它确实根据上面链接的各个选择器的文档和你的测试用例.当然,这个答案也是如此.

  • 微软自己的兼容性图表......谢谢! (4认同)

Juk*_*ela 5

IE 9支持"标准模式"中的符号::after::before(带有两个冒号).在"怪癖模式"中,它没有.这可以通过例如如下测试:

<style>
p::after  {  
  content: "***AFTER***";  
} 
</style>
<p>Hello world 
Run Code Online (Sandbox Code Playgroud)

这里忽略CSS规则,因为IE 9进入怪癖模式.但是如果你在开始时添加以下行,IE 9将进入标准模式,CSS规则生效:

<!doctype html>
Run Code Online (Sandbox Code Playgroud)

这是常见的IE 9,在特殊模式,新的CSS功能(主要功能既不是在CSS 2.1或IE遗留)不被支持.在特殊模式,IE 9不支持旧的冒号符号 :after:before任一.它支持"IE 8模式"中的(但不是双冒号版本),您可以在"文档模式"菜单中手动选择开发人员工具(F12),也可以使用标记在文档级别选择<meta http-equiv="X-UA-Compatible" content="IE=8">.