【问题标题】:internet explorer 9 ignores before pseudo elementInternet Explorer 9 在伪元素之前忽略
【发布时间】:2012-07-05 07:51:03
【问题描述】:

这是一个来自 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 Explorer 9¹ 只是忽略了 :before 指令。在“开发人员工具”CSS 对话框中,“内容”属性也不会显示。我在网上搜索过:IE 8 存在伪元素问题,但 IE 9 应该知道,这是“旧”的 CSS 2。

是否有人知道为什么会失败(IE 9 中的错误?)或者语法必须是什么样子?


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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 添加以下内容时效果很好:&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"&gt; 我希望我可以成功地将它集成到 Web 应用程序中而不会导致其他东西崩溃……☺
    • 现在一切正常。抱歉,这是我的第一个问题,我不能投票。
    【解决方案2】:

    我可以在 IE 9 中看到这些点。与您的版本完全相同。我的代码中唯一的区别是顶部的有效 HTML5 文档类型。

    如果没有有效的文档类型,IE 可能会将其对您的页面的呈现切换为 quirks 模式,或者 IE8/IE7 的呈现模式将无法处理伪选择器,如 first-child 或生成的内容。

    查看您的页面here in browserling

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 2017-06-07
      • 1970-01-01
      • 2016-02-17
      相关资源
      最近更新 更多