当<img>图像最终将通过媒体查询隐藏时,延迟和手动控制加载



我有一个网页,它使用了几个默认不可见的<img>元素。

  • 图像用于转盘

  • 一些图像通过mobile.css和css媒体查询使用display: none设置为隐藏

浏览器,尤其是移动浏览器,如何对图像加载进行排队?是否可以对图像进行微调控制,以便

  • 图像在可见之前不会加载

  • 如果移动媒体查询进入,则mobile.css或附带的Javascript会中止图像加载

  • CSS背景图像和<img>元素图像的行为(如果有的话)之间有什么区别

在这种情况下,移动浏览器(WebKit)使用什么策略?

作为一个示例网站,我可以使用开源网站http://fi.pycon.org/2012/它有一个用HTML和CSS 创建的徽标元素

https://github.com/python-finland/fi.pycon.org/blob/master/2012/index.html#L85

这个元素在默认情况下是可见的(桌面)

https://github.com/python-finland/fi.pycon.org/blob/master/media/2012/css/theme.css#L99

但最终通过mobile.css和媒体查询为移动浏览器隐藏:

https://github.com/python-finland/fi.pycon.org/blob/master/media/2012/css/moobile.css#L20

  • 移动浏览器是否进行了优化,以便不加载徽标图像文件?

  • 如果标志使用<img>元素,情况会有所不同吗?

  • 覆盖CSS规则是否在不同的CSS文件(和媒体查询)中有关系吗

注意:应该如何处理媒体查询不在这个问题的范围内,我对以不同的方式构建基本CSS和媒体查询的答案不感兴趣。我很清楚这些解决方案。

目前没有可行的标准化选项来防止<img>标签从直接加载HTML+CSS。这也是W3C响应图像工作组成立的原因之一:

没有一个基于CSS的解决方案能够解决我们想要避免的一个基础问题:以更大的屏幕宽度下载多个资产,因为在应用交换逻辑之前可以发出请求。

这并不是说基于JavaScript的临时解决方案不能工作,只是纯粹的基于HTML+CSS的解决方案不会工作。因此,为了回答您的问题:

1.是否对移动浏览器进行了优化,以便不加载徽标图像文件

没有。隐藏元素将加载其背景图像。

2.如果将元素用于徽标,情况会有所不同吗

没有。在应用CSS之前,图像很可能会先开始加载。

3.覆盖CSS规则是否在不同的CSS文件(和媒体查询)中重要吗

没有。这可能会导致答案#2中提到的交换逻辑应用更多延迟,从而增加图像已经开始加载的可能性。

最新更新