浏览器是否解释/执​​行他们认为为空的css标签? (即IE黑客入侵)

时间:2010-12-02 17:56:03

标签: css performance browser

我很好奇这个示例CSS的效率:

ul, a, span, p, li { *zoom:1; }

请记住,这纯粹是理论上的,所以CSS hacks的优点或陷阱并不是很有意思。

我的问题是 - IE6和7以外的浏览器有什么用:

  1. 寻找匹配页面中的所有选择器然后意识到它是空的而不是对它采取行动? (非常低效)
  2. 意识到它是空的,不会对选择者采取行动(相当有效)
  3. 以上都不是。
  4. 任何想法都会受到极大的欢迎。

    干杯, 广告。

2 个答案:

答案 0 :(得分:1)

我不知道。 :)它可能取决于浏览器,尽管所有这些都在竞争中尽可能地优化速度。我想他们会想到这个。

但是因为你永远无法确定,我建议将IE黑客放在一个单独的css文件中,并在HTML中使用条件注释来有条件地包含这些css文件。

但是,当我这样做时,我认为你还应该为这些文件提供一个'Expires'标题,允许它们被缓存更长的时间(比如一天?)。当您不提供这些标头时,IE将比大多数其他浏览器更快地使缓存文件无效,这可能会导致访问者浏览器多个网站页面时对您的服务器发出更多请求(对于这些单独的css文件)。 通常这不会是一个大问题,但如果您正在谈论这样的优化,那么这可能是一个问题。

答案 1 :(得分:1)

假设浏览器服从specification,它将忽略*zoom属性:

  

用户代理必须忽略声明   有一个未知的财产。例如,   如果样式表是:

h1 { color: red; rotation: 70minutes }
     

用户代理会将此视为一样   样式表已经

h1 { color: red }

至于如果这样的浏览器找到一个空的声明块会发生什么,我不知道。我还没有看到规范中提到的场景,所以我猜它是一个实现细节,它与浏览器的浏览器不同。

相关问题