background 图片比例缩小_如何更精准控制背景图片尺寸?| CSS进阶

背景图片在网页的用处很广,但他就是有个毛病,它的尺寸不太好控制,一旦背景的图片超过了容器的限制,就会直接被截取,让图片看起来怪怪的。

实际开发中,设计师给你的图片难免会有一点误差,但你的图片又不能这样展示,更不可能自己手动修改图片,所以就必须使用一种方法来让图片自动适应容器。

本质上要解决的是每个即使不同尺寸的图片,都能统一适配同个容器的尺寸。

语法

控制背景图片尺寸

background-size:类型;

(1)Auto

这是默认值,等于没有使用这个属性。超出的部分直接被截掉。

核心代码:background-size: auto;

796d4b09cb8f6b8a6465c636f2914547.png

核心代码:background-size: auto

0b664c1708cd8dd0d2bd9fa77ecbd501.png

超出部分,被截掉

(2)数值

可以使用px或者%,设置一个就对宽度起作用,设置第二个,则是对高起作用;

如果单是设置一个宽,第二个高就会自动设置,和宽保持等比例。

核心代码:background-size: 600px;

e2e3e44ef9b6c001f2c95e12773859c6.png

核心代码:background-size: 600px;

b81aac169c0b62ac2edc8f7dbfdd8daa.png

完整显示,但空出了下面

当然更便捷的是,两个都设置100%,就会直接填满容器,但是这样会失真。

核心代码:background-size: 100% 100%;

295201a564b798c1befcebb9de44f717.png

核心代码:background-size: 100% 100%;

3d14090e14116a27432c20b9ec6936d4.png

虽然也能覆盖容器,但已经变相失真

(3)Contain

官方的解释是图片按照背景最短边进行按比例放大或缩小,其实你只要记住,图片会完整的展示在容器内,并不会失真。

但这可能会带来容器内有空余的地方,这是因为图片要在不失真的情况下,按等比例完整的在不合尺寸的容器内展示。

核心代码:background-size: contain;

6408969524e5b649392805864500decc.png

核心代码:background-size: contain;

这幅图片原本是竖着长方形,而容器是横着长方形,并且图片实际尺寸是要比容器大得多,但使用了contain,也能在不失真的情况下,完整的展示在不合尺寸的容器里。

2967af740ef21218f0aba3e95423a71e.png

能在容器内完整显示,不变形

(4)Cover(常用)

官方的解释是图片按照背景最长边进行按比例放大或缩小,其实你只要记住,图片会按容器尺寸等比例覆盖容器,避免会出现空白的地方,但会截掉一点点超出的部分。

核心代码:background-size: cover;

32f2fd2bb92517c505b8f36353c5608b.png

核心代码:background-size: cover;

实际上图片尺寸是比容器大得多,但使用cover就可以让图片尺寸同步容器,超出的部分在裁掉。

20d2ae3ded6d20165a7f284e28628133.png

完整覆盖容器

这个是没使用cover属性,就只能看到一部分内容。所以在使用背景图片时,一般都要加上cover属性,好让不同图片能够适用容器,仅仅只是截掉一点点图片而已。

f892ae1f6d26a863470e61e1011557e0.png

背景图片原尺寸

知识导图

e5bd49fbaab00535bfbed5b7860241a9.png

总结总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值