我无法让IE8支持:之前

时间:2013-11-20 17:21:20

标签: html css

不知道为什么:以前不行。我的IE8浏览器将在此页面上正确显示:

http://quirksmode.org/css/selectors/beforeafter.html

但不是在我在此页面上执行此操作时:

http://africa.ie

3 个答案:

答案 0 :(得分:1)

IE8支持:before

两种可能性:

  1. IE正在以兼容模式或怪癖模式呈现页面。

    这些模式中的任何一种都将禁用此功能。添加有效的文档类型并将X-UA-Compatible设置为IE=edge以处理此问题。

  2. 您使用的是::before而不是:before

    这是一个非常微妙的问题。正确的语法是双冒号,但在IE8发布时,它是一个冒号;官方语法随后发生了变化。所有现代浏览器都会接受::before::after的单冒号或双冒号以适应这种历史变化,但IE8仅支持单冒号。

答案 1 :(得分:0)

只要您不处于兼容模式,它就可以正常工作。如果您希望它支持更多,我可能会推荐以下内容:

<!--[if lt IE 9]>
   <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js"></script>
<![endif]-->

答案 2 :(得分:0)

删除::before::after选择器似乎可以在IE8中运行:

p.test:before {
    padding-right: 5px;
    content: url(http://quirksmode.org/pix/logo_ppk.gif);
}
p.test:after {
    font-style: italic;
    content: " and some text after.";
}