3

最近,我已经有足够多的“CSS hacks”与“条件注释”的争论,我想我会把这个问题扔给 Stack Overflow 社区。

<!--[if IE]>
 <link type="text/css" rel="stylesheet" href="ie-specific.css" /> 
<![endif]-->

反对使用 IE 条件注释的主要论点似乎是您在每个页面加载时添加了额外的 HTTP 请求,从而减慢了页面的显示速度。我找不到任何真实世界的指标来证明或反驳这一说法。

撇开维护多个样式表与一个样式表的争论(尽管这本身就是一个有效的讨论),这里有没有人做过任何测试来确定使用条件注释给你带来多少减速,或者能够指出我在其他人收集的任何统计数据的方向?

4

1 回答 1

7

实际上与条件注释本身无关,它就像条件编译。

IE 浏览器会将您的页面视为包括

<link type="text/css" rel="stylesheet" href="ie-specific.css" /> 

(用一点点额外的处理来评估评论条件)。

非 IE 浏览器只会在此处看到评论。

所以唯一潜在的性能影响是 IE 浏览器需要评估条件注释条件(这将可以忽略不计),然后将包含另一个 CSS 文件。当然,其他浏览器只会看到通用文件并完全忽略注释。

那么问题是为 IE 提供(比如说)5Kb 符合标准的 CSS 文件,然后是(比如说)2Kb“hacks”文件,让其他人只得到 5Kb 文件的利弊是什么?vs 为每个人提供一个 7Kb 的文件,其中包含狡猾的 CSS。取决于各种因素,包括网络速度和延迟、文件大小、整个页面上使用的资源数量等,这可能会对 IE 的性能产生显着影响,也可能不会(毫无疑问会更快)对于非 IE 用户代理)。

与所有性能问题一样,您必须在您的环境中分析您的代码以查看影响是什么 - 但作为一般准则,我希望对 IE 的影响可以忽略不计,对于所有其他浏览器的性能提升很小,如以及能够在您的实际文件中编写“正确”的 CSS 然后单独修复 IE 的模糊感觉。

于 2009-12-01T10:56:10.937 回答