覆盖CSS样式的性能影响

覆盖CSS样式的性能影响

问题描述:

出于性能原因,我正在为网页设置图像集群(类似于精灵图)。我有一个生成主图像的实用程序,而css引用图像映射。覆盖CSS样式的性能影响

为了简单起见,我宁愿在常规css文件后包含新的css,而不是编写脚本来搜索并替换原始css中的所有类。像这样在HTML(伪代码):

<LINK href="normal.css" rel="stylesheet" type="text/css"> 

if(%=usingImageCluster=%) 
     <LINK href="master.css" rel="stylesheet" type="text/css"> 

所以在normal.css中定义的所有样式将在master.css新的样式得到覆盖。

几个问题:

  • 除了信息的“复制”,这是否覆盖导致性能问题?

  • 由于原始CSS文件仍然包含在内(否定图像集群的正面性能增益),浏览器是否仍会拉取非集群映像?

  • 是否有保证最后加载的样式总是应用的样式?

除了信息的“复制”,这是否覆盖导致性能问题?

是的,您正在为第二个外部样式表生成一个新的HTTP请求。太多HTTP请求是大多数网页排名第一的因素。

由于仍然包含原始的CSS文件(否定了图像集群的正面性能增益),浏览器是否仍然拉取非集群映像?

是的,浏览器将拉动全部来自第一个和第二个CSS文件的图像。演奏时间将几乎线性增加(近似)。特别是如果你正在重写每一个CSS选择器,或更改大量的图像。

是否有保证上次加载的样式总是应用的样式?

是的。除非第一张表对某些样式属性使用!important,否则将始终应用选择器的最后声明样式。这是Cascading Style Sheets获得他们的名字的地方。