首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE9是否支持伪元素CSS3 ::before和::after?

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

Stack Overflow用户
提问于 2011-08-23 15:08:38
回答 3查看 29.1K关注 0票数 12

this MS compatibility table上,它说IE9不支持伪元素::before::after,但当我尝试时,它似乎支持……请参阅JSBin

我做错了什么吗?我认为::before::after会是对IE9隐藏东西的很好的工具,但实际上他们不是。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-23 15:10:34

IE8及更高版本支持使用传统单冒号表示法的CSS2伪元素:before:after。它们对CSS3来说并不新鲜。

另一方面,双冒号表示法是new to CSS3。对于::before::after,IE9确实支持这种新的表示法,对于CSS1伪元素::first-line::first-letter也是如此。然而,展望未来,没有新的伪元素可以使用单冒号语法,浏览器(包括IE)应该支持所有伪元素的双冒号语法。

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

票数 27
EN

Stack Overflow用户

发布于 2013-01-04 03:36:54

IE9在“标准模式”中支持符号::after::before (带有两个冒号)。在“怪癖模式”中,它不会。例如,可以按如下方式进行测试:

代码语言:javascript
复制
<style>
p::after  {  
  content: "***AFTER***";  
} 
</style>
<p>Hello world 

这里忽略了CSS规则,因为IE9进入了quirks模式。但是,如果您在最开始添加以下行,IE 9将转到标准模式,CSS规则将生效:

代码语言:javascript
复制
<!doctype html>

在IE9中,通常在quirks mode中不支持新的CSS特性(大多数特性既不在CSS2.1中,也不在IE遗留版本中)。在怪癖模式下,IE9也不支持旧的单冒号符号:after:before。它在“IE 8模式”中支持它们(但不支持两个冒号的版本),您可以在开发人员工具(F12)中手动选择,在“文档模式”菜单中选择,或者使用标签<meta http-equiv="X-UA-Compatible" content="IE=8">在文档级选择。

票数 5
EN

Stack Overflow用户

发布于 2013-06-19 16:01:52

引用自http://www.w3.org/community/webed/wiki/Advanced_CSS_selectors

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7157405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档