使用 CSS 样式的网页在 Internet Explorer 中无法正确呈现

警告

已停用、不受支持的 Internet Explorer 11 桌面应用程序在某些版本的 Windows 10 上已通过 Microsoft Edge 更新永久禁用。 有关详细信息,请参阅 Internet Explorer 11 桌面应用停用常见问题解答

本文提供的步骤有助于描述 CSS 样式网页在 Internet Explorer 中无法正确呈现的问题。

原始产品版本: Internet Explorer
原始 KB 数: 262161

现象

当页面在 Internet Explorer 中加载时,网页上的样式缺失或看起来不正确。

注意

无论是网页使用内联样式表还是指向级联样式表,都可能出现此问题。

还可以收到以下错误消息:

要查找的页面可能已被移动或已更改其名称。

原因

出现此问题的原因是 Internet Explorer 中存在以下情况:

  • 超过前 31 个样式标记的所有样式标记都不会被应用。
  • 前 4,095 条规则后的所有样式规则均未应用。
  • 在使用@import规则连续导入外部样式表(这些外部样式表又导入其他样式表)的页面上,超过三级深度的样式表将被忽略。

详细信息

网络监视器工具可能指示当 Internet Explorer 收到遇到问题的页面时发生 TCP 重置。 然后,如果原始请求是 POST 请求,Internet Explorer 将生成另一个 POST 请求。 或者,Internet Explorer 可能会改为发送 GET 请求。

此样式标记的限制还可能会影响通过.xsl文件查看.xml文件的效果。 当 .xsl 文件在文档中嵌入样式标记时,尝试查看.xml文件时,会收到以下错误消息:

Internet Explorer 无法打开 Internet 站点:
file://c:\aaa.xml

单击“ 确定”时,会收到以下错误消息:

无法显示页面

在“重现问题”部分中提供的代码示例动态创建样式表并生成以下错误消息:

发生运行时错误。
是否要调试?

行:8
错误:参数无效。

如果未动态应用样式表,而是通过 <样式> 标记或.css文件应用样式表,则不会生成 无效参数 错误消息。 在这种情况下,将忽略第三十一个样式表之后的所有样式表。

问题重现步骤

将以下代码示例粘贴到 HTML 页面中。 运行代码示例。 在应用第三十一个样式标记后,会生成一个错误。

<html>
    <head>
        <script>
            function fnCreateStyleSheets() {
                for (i = 1; i <= 32; i++) {
                    document.createStyleSheet()
                    StyleSheetCount.innerText = "Total Style Sheets = " + i
                }
            }
        </script>
    </head>
    <body onLoad="fnCreateStyleSheets()">
        <div id="StyleSheetCount"></div>
    </body>
</html>

参考

有关详细信息,请参阅以下Microsoft开发人员网络(MSDN)网站: