【问题标题】:How to prevent browser from loading images in mobile viewport如何防止浏览器在移动视口中加载图像
【发布时间】:2019-09-24 11:20:00
【问题描述】:

我在网站上有一个在桌面视图中看起来像这样的标题:

但在手机版上,照片设置为显示:无;

但审核显示浏览器仍然加载它!

所以我尝试 display: none; 父亲 div 并且仍然加载,

有没有办法阻止浏览器加载它?

【问题讨论】:

  • 图片是否加载到网络标签中?
  • 在这里回答:swimburger.net/blog/web/…
  • @Rust 是的,在审核选项卡上也是如此

标签: html css gatsby


【解决方案1】:

浏览器不知道 CSS,并且在解析 DOM 树时,图像不会在移动设备上显示。

你需要告诉浏览器图像只能使用 dom 元素加载到一定大小。您可以使用sizes 属性告诉浏览器应该以何种尺寸加载图像。

                            the media query   image display size
                                     v             v
<img src="./kitten.jpg" sizes="(min-width: 768px) 700px" />

注意:sizes 属性只是告诉浏览器图像 大小而不是实际调整图像大小。你仍然需要保持 任何与图片相关的 CSS。

【讨论】:

  • 我添加了 min-width: 768px 并且仍然显示在 767px 及以下!
  • @A.Atiyah 确保缓存被清除...如果浏览器找到缓存图像,它将从缓存中加载图像
【解决方案2】:

您可以将图片用作背景图片。 只有在接受媒体查询时才会加载它,因此对于移动设备,图片不会加载,而对于桌面版本,图片将加载。

这样做的缺点是 Google 不会将您的图片编入索引,例如 Google 图片,但如果您的图片对用户/文本没有好处,那也不错。


另一个选择是你使用

<picture>
  <source media="(min-width: 768px)" srcset="your-desktop-picture.jpg">
  <source srcset="your-mobile-picture.jpg">
  <img src="fallback-for-old-browsers.jpg" alt="">
</picture>

你可以用图片来选择不同的图片,你的手机图片也可以是一像素大,但有一张很重要,所以浏览器不会选择桌面图片。


总之,我会推荐使用 css 媒体查询的解决方案,因为它更容易,而且您的图片对于文本理解不是必需的。

【讨论】:

  • 我知道我的图片不是文字所必需的,但这是一件很酷的事情!我可以用它来为每个屏幕显示不同的 img 大小吗?我认为那真的很酷
  • 是的,这是可能的,我会推荐它以加快加载时间。你也可以试试属性sizes。如果你使用不同类型的图像,如“webp”-images 和“jpg”作为后备,我也建议使用这个
猜你喜欢
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 1970-01-01
  • 2016-05-23
  • 2016-03-31
  • 1970-01-01
  • 2012-04-20
  • 2010-09-15
相关资源
最近更新 更多