Internet explorer 9在伪元素之前忽略

时间:2012-07-05 07:51:03

标签: css internet-explorer-9 pseudo-element

以下是HTML中语言切换的简单代码示例。 CSS应该分隔span元素并在它们之间显示一个点:

 <html>
      <head>
        <style type="text/css">
            .languageSwitch span:before {
                content: "•";
                padding: 0 4px;
                font-weight: normal;
            }
            .languageSwitch span:first-child:before {
                content: "";
                padding: 0;
            }
            .languageSwitch .current {
                font-weight: bold;
            }
        </style>
      </head>
   <body>
    <div class="languageSwitch">
      <span><a href="?lang=de">Deutsch</a></span>
      <span class="current">English</span>
      <span><a href="?lang=fr">français</a></span>
    </div>
   </body>
  </html>

这在Firefox中运行良好,但Internet Explorer9¹只是忽略:before指令。在“开发人员工具”CSS对话框中,“内容”属性也不会显示。我在网上搜索过:IE 8存在伪元素问题,但IE 9应该知道它们,这是“旧”CSS 2。

有人知道为什么会失败(IE 9中的错误?)或语法必须如何?


1)要明确:版本9.0.8112.16421 /“Updateversion”9.0.6(KB2675157)

2 个答案:

答案 0 :(得分:2)

检查doctype。在jsfiddle上,这在IE9中运行良好:http://jsfiddle.net/4nGW9/。 IE8也应该处理这个问题。

答案 1 :(得分:2)

我可以在IE 9中看到精确的点。确切的版本与你的一样。我的代码中唯一不同的是顶部有效的HTML5文档类型。

如果没有有效的doctype,IE可能会将其页面渲染切换为怪异模式,或IE8 / IE7的渲染模式无法处理伪选择器,如第一胎或生成的内容。

请参阅您的信息页here in browserling