阅读Internet Explorer's CSS rules limits后,Internet Explorer似乎只会加载31个样式表,每个样式表必须包含少于4095个规则。
其他浏览器和不同版本是否有这样的规则,如果是这样,它们是什么?还有其他类似的规则,如脚本或HTML页面大小?
由于
答案 0 :(得分: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