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不支持新的伪元素语法,因为它确实根据上面链接的各个选择器的文档和你的测试用例.当然,这个答案也是如此.
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">.