阅读Internet Explorer 的 CSS 规则限制后,似乎 Internet Explorer 将仅加载 31 个样式表,并且每个样式表必须包含少于 4095 个规则。
其他浏览器和不同版本是否有这样的规则,如果有,它们是什么?还有其他类似的规则,比如脚本或 html 页面大小?
谢谢
阅读Internet Explorer 的 CSS 规则限制后,似乎 Internet Explorer 将仅加载 31 个样式表,并且每个样式表必须包含少于 4095 个规则。
其他浏览器和不同版本是否有这样的规则,如果有,它们是什么?还有其他类似的规则,比如脚本或 html 页面大小?
谢谢
看起来这确实是一个过时的机制,无论多么真实。我编写了一个非常快速的程序来创建 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