前端必知必会-响应式设计之图片


响应式网页设计 - 图片

使用 width 属性

如果 width 属性设置为百分比,height 属性设置为“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;
}
  1. 如果将 background-size 属性设置为“100% 100%”,则背景图像将拉伸以覆盖整个内容区域:
    在这里插入图片描述

以下是 CSS 代码:

示例

div {
width: 100%;
height: 400px;
background-image: url('img_flowers.jpg');
background-size: 100% 100%;
border: 1px solid red;
}
  1. 如果将 background-size 属性设置为“cover”,则背景图像将缩放以覆盖整个内容区域。请注意,“cover”值保持纵横比,并且背景图像的某些部分可能会被剪裁:
    在这里插入图片描述

以下是 CSS 代码:

示例

div {
width: 100%;
height: 400px;
background-image: url('img_flowers.jpg');
background-size: cover;
border: 1px solid red;
}

不同设备的不同图像

大图像在大型计算机屏幕上可能很完美,但在小型设备上却毫无用处。既然无论如何都必须缩小图像,为什么还要加载大图像呢?为了减少负载或出于任何其他原因,您可以使用媒体查询在不同设备上显示不同的图像。
在这里插入图片描述

以下是一张大图像和一张小图像,它们将显示在不同设备上:

示例

/* 对于宽度小于 400px:*/
body {
background-image: url('img_smallflower.jpg');
}

/* 对于宽度为 400px 及以上:*/
@media only screen and (min-width: 400px) {
body {
background-image: url('img_flowers.jpg');
}
}

您可以使用媒体查询 min-device-width 代替 min-width,它会检查设备宽度,而不是浏览器宽度。这样,当您调整浏览器窗口大小时,图像就不会改变:

示例

/* 对于小于 400px 的设备:*/
body {
background-image: url('img_smallflower.jpg');
}

/* 适用于 400px 及更大的设备:*/
@media only screen and (min-device-width: 400px) {
body {
background-image: url('img_flowers.jpg');
}
}

HTML <picture> 元素

HTML <picture> 元素为 Web 开发人员提供了更灵活的指定图像资源的方式。

<picture> 元素最常见的用途是用于响应式设计中的图像。无需根据视口宽度放大或缩小一张图像,可以设计多张图像以更好地填充浏览器视口。

<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> 元素。


总结

本文介绍了响应式设计之图片的使用,如有问题欢迎私信和评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值