【发布时间】:2021-10-17 04:56:20
【问题描述】:
我使用了一些典型的引导网格来生成一排图像,其中 4 个图像在桌面,1 个图像在移动设备中。像这样:
<div class="row">
<div class="col-md-3 col-sm-12">
<img src="image1_src">
</div>
<div class="col-md-3 col-sm-12">
<img src="image2_src">
</div>
<div class="col-md-3 col-sm-12">
<img src="image3_src">
</div>
<div class="col-md-3 col-sm-12">
<img src="image4_src">
</div>
</div>
在浏览器中渲染的图像大小约为250px*250px,但这个分辨率对于移动设备来说是不够的,因为图像在移动设备中几乎是全屏的。我决定使用分辨率约为 500px*500px 的图像,并且图像质量在移动版和桌面版中都非常好,但它让我遇到了 google pageSpeed 警告说:
图像元素没有明确的width和height
所以我决定使用<picture> 标签来使用两个不同版本的图像。桌面小一号,手机大一号!
<div class="row">
<div class="col-md-3 col-sm-12">
<picture>
<source media="(min-width:701px)" srcset="250px_image1_src">
<source media="(max-width:700px)" srcset="500px_image1_src">
<img src="500px_image1_src">
</picture>
</div>
<div class="col-md-3 col-sm-12">
<picture>
<source media="(min-width:701px)" srcset="250px_image2_src">
<source media="(max-width:700px)" srcset="500px_image2_src">
<img src="500px_image2_src">
</picture>
</div>
<div class="col-md-3 col-sm-12">
<picture>
<source media="(min-width:701px)" srcset="250px_image3_src">
<source media="(max-width:700px)" srcset="500px_image3_src">
<img src="500px_image3_src">
</picture>
</div>
<div class="col-md-3 col-sm-12">
<picture>
<source media="(min-width:701px)" srcset="250px_image4_src">
<source media="(max-width:700px)" srcset="500px_image4_src">
<img src="500px_image4_src">
</picture>
</div>
</div>
现在我面临一个新问题,即浏览器会在桌面模式下自动选择更高分辨率的图像并忽略另一个。
【问题讨论】:
-
分辨率是指图像的清晰度或大小??
-
@KunalTanwar 实际上是他们的展位,但主要问题是清晰度。分辨率较低的图像在移动视图中的清晰度不够。
-
使用 SVG 而不是 PNG!
标签: html css image twitter-bootstrap bootstrap-4