浏览器是否解释/执行他们视为空的css标记?(即黑客)

浏览器是否解释/执行他们视为空的css标记?(即黑客),css,performance,browser,Css,Performance,Browser,我很好奇这个CSS示例的效率: ul, a, span, p, li { *zoom:1; } 请记住,这纯粹是理论上的,所以CSS黑客的优点或缺点并不那么有趣 我的问题是-除了IE6和IE7之外的浏览器做什么: 查看页面中的所有选择器是否匹配,然后意识到它是空的,并且没有对其进行操作?(效率极低) 意识到它是空的,不按选择器操作(相当有效) 没有上述任何一项 任何想法都会被广泛接受 干杯, 广告。我不知道。:)这可能取决于浏览器,尽管他们都在尽可能优化速度。我想他们会考虑这个的 但由于您永远

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

ul, a, span, p, li { *zoom:1; }
请记住,这纯粹是理论上的,所以CSS黑客的优点或缺点并不那么有趣

我的问题是-除了IE6和IE7之外的浏览器做什么:

  • 查看页面中的所有选择器是否匹配,然后意识到它是空的,并且没有对其进行操作?(效率极低)
  • 意识到它是空的,不按选择器操作(相当有效)
  • 没有上述任何一项 任何想法都会被广泛接受

    干杯, 广告。

    我不知道。:)这可能取决于浏览器,尽管他们都在尽可能优化速度。我想他们会考虑这个的

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

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

    假设浏览器遵守,它将忽略
    *zoom
    属性:

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

    h1 { color: red; rotation: 70minutes }
    
    用户代理会将其视为 样式表已经过修改

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