<div>
的背景),并且我经常发现它们以这种方式加载非常缓慢。它们似乎是最后加载的东西。即使很小的小图标图像也需要一段时间才能显示出来。有没有办法告诉浏览器图像优先级?还是让它更早下载CSS文件中的图像并更早呈现它们?#1 楼
CSS是用于样式,而不是内容。浏览器(正确地)会在添加样式之前尝试显示内容,因此通常会最后下载样式表中的图像。如果图像对您的内容很重要,请通过标准HTML<IMG>
标签添加它们。评论
很好的建议,尤其是最后一句话。装饰图片:CSS;内容图片:HTML。
–心怀不满的山羊
2010年8月16日15:19
Daniel对他所指图像的描述(“背景”,“图标”)使它们听起来很像装饰,而不是内容。我认为加入CSS是正确的。
– Bobby Jack
2010年8月17日在17:07
#2 楼
使用样式表中的绝对URI,并将IMG标签中的图像添加到页面上的隐藏<div>
(这假设您在每个页面上都使用相同的图像;理想情况下,在页脚中将它们全部加载并缓存在任何给定页面上调用)。页面上的图像具有优先权,一旦图像被缓存,它们将立即在后续页面请求上呈现。
#3 楼
对于支持数据URI类型的浏览器(有关信息,请参见http://en.wikipedia.org/wiki/Data_Uri),以便将图像包含在CSS本身中。这有一些缺点:
CSS时会重新加载数据,而不是分别进行缓存,尽管除非CSS定期更改,否则这并不是什么大问题。
CSS缺乏继承并且这样就意味着有时可能不得不浪费时间(多次浪费带宽),或者多次更改同一文档中使用的类。
以这种方式使用时,图像是base64编码的,这意味着它们会占用更多带宽(尽管如果您发送压缩后的数据,带宽问题就不那么重要了。
您需要为不支持数据URI的浏览器提供其他样式,其中有些样式并非罕见(IE6和IE7对于实例)。
评论
CSS精灵回答您其他问题的方法也可能也有助于解决这一问题。