【发布时间】:2015-07-23 01:37:00
【问题描述】:
我正在尝试以img/srcset/sizes 方式为内容图像(文章中的图像)实现响应式图像。我有一个响应式网站,其单列布局适用于移动设备和平板电脑,图像拉伸到 100%。我在 CSS 中使用 max-width: 100%; height: auto; 并希望图像不会超过其原始尺寸。
但是,在我的图片尺寸属性中,我为手机和平板电脑定义了默认尺寸100vw。这适用于最大版本的宽度大于100vw 的图像。然而,这会抽出较小的图像,其原始尺寸小于100vw,因此它们变得非常丑陋。
我认为图像上的max-width: 100%; 会阻止它们放大到超出应有的大小。我将sizes 属性理解为一种告诉浏览器图像将以何种尺寸显示的方式,但没想到它会缩放图像 - 或者至少遵守添加的 CSS 规则。
我在 Chrome 和 Firefox 中的行为相同...所以我不确定这是否与 this issue 有关
顺便说一句:sizes 属性是在导入脚本中以编程方式设置的,因此大小图像的处理方式相同。
知道我在做什么或理解错误。任何帮助表示赞赏!谢谢!
【问题讨论】:
-
欢迎来到 StackOverflow。你似乎误解了这个概念。使用
max-width:100%;只会将宽度限制为容器的 100%。在这里查看:jsfiddle.net/pnz2kgxL(尝试重新调整面板)。 -
max-width:100% 是根据父元素的大小来判断的,不是原图尺寸^^。
-
感谢您的提琴!我想我误解了,因为更常见的情况是在一个小容器中安装一个大图像。您对处理小于其容器的图像有什么建议吗?当我添加
sizes属性时,它似乎像width属性一样工作并缩放图像,例如100vw会让它膨胀。可能我需要将图像版本的各自宽度设置为sizes中的宽度,对吧?类似:srcset="large-600x400.jpg 600w, small-300x200.jpg 300w" sizes="(max-width: 400px) 300px, 600px"
标签: html css image responsive-design