1

阅读Internet Explorer 的 CSS 规则限制后,似乎 Internet Explorer 将仅加载 31 个样式表,并且每个样式表必须包含少于 4095 个规则。

其他浏览器和不同版本是否有这样的规则,如果有,它们是什么?还有其他类似的规则,比如脚本或 html 页面大小?

谢谢

4

1 回答 1

2

看起来这确实是一个过时的机制,无论多么真实。我编写了一个非常快速的程序来创建 35 个样式表,其中包含 4500 个类,每个类具有 1 个 css 属性。然后我用一个快速的小脚本动态地创建了指向这些样式表的链接:

$(document).ready(function() {
try
  {
    for(var i = 0; i<35; i++)
    {
        var el = document.createElement("link");
        el.type = "text/css";
        el.rel = "stylesheet";
        el.href = "style" + i + ".css";
        document.getElementsByTagName("head")[0].appendChild(el);
    }
  }
catch(e)
  {
      alert(e);
  }
});

这在 Chrome 和 IE9 中都可以正常工作,不会引发任何错误。然后,我使用 MSDN 对 createStyleSheet 的引用在 IE9 中测试了相同数量的工作表,将 for 循环中的代码替换为:

document.createStyleSheet("style" + i + ".css");

这确实引发了存储不足的错误。我还要注意这个函数只能在 IE 中工作,试图在 Chrome 中运行这个脚本会抛出一个“createStyleSheet”类型的未知对象错误。

这是代码的工作版本:http: //fluidev.com/cssMax/test.html

于 2012-10-02T02:52:47.030 回答