在智能手机上停止下载图像

时间:2012-04-30 19:03:45

标签: html css image responsive-design smartphone

我正在为一家公司开发一个响应式网站,其中全尺寸网站的幻灯片中包含背景图片(完全用Backstretch填充屏幕)。由于图像的大小非常大(大约300k),我正在寻找一种方法来阻止在智能手机上查看网站时加载图像。

我已使用媒体查询在backstretch div上应用了display: nonevisibility: hidden。它隐藏了图像,但似乎它们仍然被下载。是否有一种聪明的方法可以让浏览器完全忽略它们?

3 个答案:

答案 0 :(得分:6)

如果您通过CSS设置图像,那么就有办法。

如果将div设置为display:none,它仍会下载,但是如果将父div设置为none,则在媒体查询触发设置之前不会加载

<强> CSS

.parent {display:block;}
.background {background-image:url(myimage.png);}

@media only screen and (max-width:480px) {
.parent {display:none;}
}

<强> HTML

<div class="parent">
   <div class="background"></div>
</div>

提示给蒂姆卡德莱克 - http://timkadlec.com/2012/04/media-query-asset-downloading-results/

答案 1 :(得分:4)

另一种选择是采用移动优先方法,为移动设备定义默认样式,并在媒体查询中覆盖这些样式以获得更大的屏幕宽度。

以下内容会阻止图像在移动设备上下载,同时也避免了不必要的包装div:)

HTML:

<div class="container">
    <!-- slideshow container -->
</div>

CSS:

/* default to no background image */
.container {
    background-image: none; 
}

/* add it in for wider screens */
@media screen and (min-width: 500px) {
    .container {
        background-image: url(myimage.png);
    }
}

答案 2 :(得分:1)

visibilitydisplay与是否下载图片无关。您唯一能做的就是将所有图像作为背景图像,并使用媒体查询将其完全排除在备用样式表中。