响应式网页设计 – 图像
使用 width 属性
如果 width
属性设置为百分比,且高度设置为 “auto”,则图像将进行响应来放大或缩小:
实例
img { width: 100%; height: auto; }
请注意,在上面的例子中,图像可以放大到大于其原始大小。在多数情况下,更好的解决方案是改为使用 max-width
属性。
使用 max-width 属性
如果将 max-width 属性设置为 100%,则图像将按需缩小,但绝不会放大到大于其原始大小:
实例
img { max-width: 100%; height: auto; }
向实例网页添加图像
实例
img { width: 100%; height: auto; }
背景图像
背景图像也可以响应调整大小和缩放比例。
这是我们展示的三种不同方法:
1. 如果将 background-size
属性设置为 “contain”,则背景图像将缩放,并尝试匹配内容区域。不过图像将保持其长宽比(图像宽度与高度之间的比例关系):
这是 CSS 代码:
实例
div { width: 100%; height: 400px; background-image: url('img_flowers.jpg'); background-repeat: no-repeat; background-size: contain; border: 1px solid red; }
2. 如果将 background-size
属性设置为 “100% 100%”,则背景图像将拉伸以覆盖整个内容区域:
这是 CSS 代码:
实例
div { width: 100%; height: 400px; background-image: url('img_flowers.jpg'); background-size: 100% 100%; border: 1px solid red; }
3. 如果 background-size
属性设置为 “cover”,则背景图像将缩放以覆盖整个内容区域。请注意,”cover” 值保持长宽比,且可能会裁剪背景图像的某部分:
这是 CSS 代码:
实例
div { width: 100%; height: 400px; background-image: url('img_flowers.jpg'); background-size: cover; border: 1px solid red; }
为不同设备准备不同图像
大幅的图像在大型计算机屏幕上可以完美显示,但在小型设备上就没用了。为什么在不得不缩小图像时又加载大图像呢?为了减少负载或出于任何其他原因,您可以使用媒体查询在不同的设备上显示不同的图像。
这是一幅大图像和一幅小图像,会在不同的设备上显示:
实例
/* 针对小于 400 像素的宽度: */ body { background-image: url('img_smallflower.jpg'); } /* 针对 400 像素或更大的宽度: */ @media only screen and (min-width: 400px) { body { background-image: url('img_flowers.jpg'); } }
您可以使用媒体查询 min-device-width
而不是 min-width
来检查设备宽度,而不是浏览器宽度。然后,当您调整浏览器窗口的大小时,图像将不会变化:
实例
/* 针对小于 400 像素的设备: */ body { background-image: url('img_smallflower.jpg'); } /* 针对 400 像素及更大的设备: */ @media only screen and (min-device-width: 400px) { body { background-image: url('img_flowers.jpg'); } }
HTML5 <picture> 元素
HTML5 引入了 <picture>
元素,该元素使您可以定义多幅图像。
浏览器支持
38.0 | 13 | 38.0 | 9.1 | 25.0 |
<picture>
元素的作用类似于 <video>
和 <audio>
元素。我们设置了不同的来源,而匹配优先权的第一个来源是正在使用的来源:
实例
<picture> <source srcset="img_smallflower.jpg" media="(max-width: 400px)"> <source srcset="img_flowers.jpg"> <img src="img_flowers.jpg" alt="Flowers"> </picture>
srcset
属性是必需的,它定义图像的来源。
media
属性是可选的,它接受可在 CSS @media 规则 中找到的媒体查询。
提示:您还应该为不支持 <picture>
元素的浏览器定义 <img>
元素。
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容