【发布时间】:2019-06-20 07:40:24
【问题描述】:
我已经阅读了以下文章https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images 和一些类似的资源。
我无法理解为什么 - 从程序化的角度来看 - 艺术指导和分辨率切换之间有任何区别。对两者的解释不同,用于解决问题的 HTML 也不同。引自文章:
艺术指导:您希望为不同布局提供裁剪图像的问题...这可以使用
<picture>元素解决。
和:
分辨率切换:您希望将较小的图像文件提供给窄屏幕设备的问题,因为它们不需要像桌面显示器那样的大图像 这可以使用矢量图形(SVG 图像)和
srcset来解决和sizes属性。
假设我有一个“横向”横幅,例如 2000 * 500 像素的图片,例如http://placehold.it/2000x500
在台式机/笔记本电脑屏幕上看起来不错。但在移动设备上,它看起来不正确,因为中心的内容(在本例中为文本,但可能是一组人的照片)不可见。所以我想这是艺术指导问题的一个例子?但它也属于分辨率切换的范畴,因为当一个较小的设备可以工作时,为什么有人想将一个 2000 像素宽的图像(具有大文件大小)下载到移动设备上?
那么就实现而言,我可以使用EITHER艺术指导或分辨率切换实现来解决它吗?为什么我需要两种不同的解决方案来做同样的事情?
例如-
<img srcset="banner-320w.jpg 320w,
banner-480w.jpg 480w,
banner-2000w.jpg 800w"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="banner-2000w.jpg" alt="Banner">
这将在宽度超过 800 像素的任何物体上使用 banner-2000w.jpg 横幅,例如台式机/笔记本电脑和不同比例的图像(解决艺术指导问题)以及不同文件大小(解决分辨率切换问题)。
但同样的事情也可以使用picture 属性来完成,文章将其描述为艺术指导问题的解决方案:
<picture>
<source media="(max-width: 320px)" srcset="banner-320w.jpg">
<source media="(max-width: 480px)" srcset="banner-480w.jpg">
<img src="banner-2000w.jpg" alt="Banner">
</picture>
谁能解释在什么情况下一种实现比另一种更好?在我看来,这两种实现都解决了这两个问题 - 还是不是这样?
【问题讨论】:
标签: html css responsive-design