计算IE规则限制中的CSS规则数量

4

关于IE的4095 CSS规则限制,以下代码会被认为是1个规则还是5个规则:

.foo, .bar, .baz, .foo p, .bar a { property: value; }

我不确定老版本的IE浏览器如何解析这些规则。谢谢!


2
这是CSS规则。但请注意,它仅适用于选择器,而不是规则本身。这个限制仅适用于单个文件。您可以导入多个其他CSS文件来解决此问题。我认为IE的@import限制大约为35。当您能够实现那么多CSS规则时,我会称呼您为疯狂英雄:P - user1467267
顺便说一下,我刚读到自IE10以来,样式表中可以有65534个。但是HTML本身仍然只能容纳4095个(内联和在<style>标签中)。不过你仍然可以将所有这些东西组合起来。你需要使用大量的库才能达到如此庞大的CSS。 - user1467267
@Allendar:所以我的示例规则会被计算为对4,095个选择器的七个选择器……正确吗?你能指引我到一些明确阐述解析规则的来源吗? - bjork24
深度遍历可能不算,但我不能百分之百确定。我尽量避免使用IE :P 这是一个资源;http://blogs.msdn.com/b/ieinternals/archive/2011/05/14/10164546.aspx - user1467267
1个回答

1
根据几个 人们 尝试解决这个问题的结果,它是选择器的限制。这意味着在计数时将每行分隔符号,拆分(例如选择器计数器的示例:https://dev59.com/v2kw5IYBdhLWcg3waZ74#20496041

这意味着您的示例对4095限制有5个点。

如果您想自行验证,请将IE浏览器带到我设置的此页面:http://dylancodes.net/wayBack/ie9selectors/

它会计算一些额外的内容,达到4097,在样式表中格式化为:

.test0, .test1, .test2, ..., .test4097 { background: green; }

我仅使用IETester软件进行了检查,但似乎前三个div未能获得颜色(从0开始计数,所以4094是第4095个项目,所以规则之外有三个)。


对于遍历集合(元素 > 元素 > 元素),顺序并不重要。这对于老旧的微软来说很好。也许我们应该发起一项请愿,放弃整个IE开发。我可以写一部三部曲关于该浏览器引擎和包装功能中存在的问题。 - user1467267
如果您想查看您的规则在一行中扩展到4098个选择器的情况,请添加一个链接到简单测试页面。 - DRobinson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接