5

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

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

4

3 回答 3

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>

Tim Kadlec 的帽子提示 - http://timkadlec.com/2012/04/media-query-asset-downloading-results/

于 2012-05-01T10:14:28.873 回答
6

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

像下面这样的东西会阻止图像被下载到移动设备上,并且还避免了对不必要的包装 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);
    }
}
于 2012-07-06T05:09:46.947 回答
1

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

于 2012-04-30T19:12:01.817 回答