html平铺 拉伸 图片,[CSS]背景图片中平铺与拉伸

本文介绍了CSS中的background-size属性如何实现背景图片的平铺和拉伸。通过实例代码展示了cover和100% 100%两个值的区别。拉伸会根据容器尺寸完整显示图片但可能导致变形,而平铺则保持图片比例,只显示一部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在某业务场景下,需要支持背景图的平铺和拉伸,那么在CSS中的这俩属性表现有何区分关系到是否符合业务表现,因此有必要清晰知道其差别。

原本以为只有自己会遇到,没想到群里有小伙伴也问到了。

0x00 background-size

在CSS中有background-size属性,平铺与拉伸可以通过下面两个值实现:

平铺:cover

拉伸:100% 100%

0x01 表现如何

设置的背景图原图比例表现如下:

292e06d9c1e657349f2cb6054c28fa69.png

比较的代码实现如下:

背景图长宽比例问题探索

*{

margin: 0;

padding: 0;

border: 0;

}

.box {

width: 400px;

height: 300px;

background-color: aquamarine;

background-image: url(http://p0.qhimg.com/bdr/__85/t01cf4d52137a580601.jpg);

background-size: cover;

background-position: center;

}

.box2 {

width: 400px;

height: 300px;

background-color: red;

background-image: url(http://p0.qhimg.com/bdr/__85/t01cf4d52137a580601.jpg);

background-size: 100% 100%;

background-position: center;

}

其浏览器中表现如下图:

e6863b6f522e24dc256c3b980fd95b0c.png

可以发现,拉伸是根据容器的宽高来设置图片的宽高,能完整展示整个图片内容,但图像内容发生了变形

而平铺比较特殊,完全展示了图片的高度,但是左右两边被裁掉了一部分,无法展示完整的图片,但图片的宽高比例没变,因此图像不存在变形

将宽高值互换:

.box {

width: 300px;

height: 400px;

background-color: aquamarine;

background-image: url(http://p0.qhimg.com/bdr/__85/t01cf4d52137a580601.jpg);

background-size: cover;

background-position: center;

}

.box2 {

width: 300px;

height: 400px;

background-color: red;

background-image: url(http://p0.qhimg.com/bdr/__85/t01cf4d52137a580601.jpg);

background-size: 100% 100%;

background-position: center;

}

其表现如下:

c01f8c26ee5edac9e25b3e952f5061a2.png

0x02 总结

相较于平铺属性,拉伸的效果非常好理解。平铺,按照我个人理解,平铺的渲染规则是,以图片的“短边”为基准,对图片进行等比例缩放,缩放后的图片“短边”长度等于“短边”所对应容器“边”的长度,“长边”缩放后多余的部分被裁剪。

换句话说,谁短谁牛逼!

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值