【CSS】background-size 属性详解

news/2025/11/13 16:49:39/文章来源:https://www.cnblogs.com/proving/p/19218719

【CSS】background-size 属性详解

【CSS】background-size 属性详解
原创【CSS】background-size 属性详解-CSDN博客
于 2024-09-23 11:30:52 发布
·
1.8w 阅读
·

32
·
33
·
CC 4.0 BY-SA版权
文章标签:
#css
#前端
#node.js
#javascript
#vscode


CSS
专栏收录该内容
16 篇文章
订阅专栏
文章目录
一、`background-size` 属性概述
1. 属性简介
二、`background-size` 属性的基本用法
1. 使用 `auto` 保持原始大小
2. 使用 `cover` 完全覆盖背景
3. 使用 `contain` 适应背景
4. 使用百分比或具体尺寸
三、`background-size` 的详细解析
1. `auto` 的详细解释
2. `cover` 与 `contain` 的比较
3. 指定宽度和高度
4. 动态尺寸计算
四、响应式设计中的应用
1. 使用 `cover` 实现自适应背景
2. 使用 `contain` 保证图片完整显示
五、多个背景图片的使用
六、`background-size` 与其他属性的配合
1. 与 `background-position` 的配合
2. 与 `background-repeat` 的配合
七、注意事项
1. 图片比例的影响
2. 性能影响
八、总结
background-size 是 CSS 中一个非常重要的属性,用于控制元素背景图片的尺寸。通过设置 background-size,开发者可以根据布局需求,灵活地调整背景图像的大小,创造出更加丰富和美观的页面效果。

一、background-size 属性概述
1. 属性简介
background-size 属性允许你定义背景图片的大小,以适应元素的尺寸和页面布局。该属性能够通过多种方式设定背景图像的缩放比例,提供了从完全覆盖到按比例缩放的多种方案。

background-size 可以接受以下几种值:

auto:默认值,保持背景图片的原始大小。
cover:背景图片将被缩放到足够大,以完全覆盖元素的背景区域,即使图片会被裁剪。
contain:背景图片将被缩放到足够小,以完整显示在元素背景中,且不会被裁剪。
指定尺寸:你可以直接设定背景图片的宽度和高度,如 100px 200px 或 50% 50%,甚至还支持 calc() 函数进行动态计算。
二、background-size 属性的基本用法
下面我们来看几个基本的使用案例:

1. 使用 auto 保持原始大小
.example-auto {
background-image: url('image.jpg');
background-size: auto;
}
AI生成项目
css
1
2
3
4
在这个例子中,背景图片的大小保持其原始尺寸,图片既不会缩放也不会拉伸,直接根据图片的实际大小显示。

2. 使用 cover 完全覆盖背景
.example-cover {
background-image: url('image.jpg');
background-size: cover;
}
AI生成项目
css
1
2
3
4
cover 值会将背景图片缩放到足够大,以确保它能够覆盖整个元素背景。如果背景图片的比例与元素不同,部分图片可能会被裁剪。

3. 使用 contain 适应背景
.example-contain {
background-image: url('image.jpg');
background-size: contain;
}
AI生成项目
css
1
2
3
4
与 cover 不同,contain 值会确保整个背景图片都显示在元素背景中,图片不会被裁剪,但这可能导致元素中留有空白区域。

4. 使用百分比或具体尺寸
.example-size {
background-image: url('image.jpg');
background-size: 50% 50%;
}
AI生成项目
css
1
2
3
4
这里,背景图片的宽度和高度分别设定为元素尺寸的 50%,即使图片的比例与元素不匹配,仍会按比例缩放。

三、background-size 的详细解析
1. auto 的详细解释
当使用 auto 时,背景图片的尺寸不会被改变。即便容器的大小发生变化,背景图片也不会跟随改变。因此,auto 更适合用于设计中背景图片尺寸精确控制的场景,尤其是那些需要背景与实际内容比例保持一致的布局。

2. cover 与 contain 的比较
cover:使用 cover 值时,背景图片会被放大或缩小,确保元素的背景被图片完全填充。但由于图片会根据容器比例进行调整,可能会有部分被裁剪。通常用于全屏或全区域背景图的应用场景。
contain:相比之下,contain 则保证背景图片不会被裁剪,所有内容都显示出来。然而,它不会保证图片能完全覆盖整个背景区域,可能会有部分区域留空,适合那些需要展示整个图片的场景。
3. 指定宽度和高度
除了 auto、cover 和 contain 之外,还可以直接为 background-size 指定具体的尺寸,既可以是绝对值如 px,也可以是相对值如百分比。

.example-custom {
background-image: url('image.jpg');
background-size: 100px 200px;
}
AI生成项目
css
1
2
3
4
在这个例子中,背景图片被缩放到宽度 100px、高度 200px。使用固定尺寸时,确保图片比例不会失真是一个设计难点。

4. 动态尺寸计算
在某些复杂布局中,可能需要根据元素或屏幕的大小动态调整背景图片的尺寸,calc() 函数能够很好地解决这个问题:

.example-calc {
background-image: url('image.jpg');
background-size: calc(100% - 20px) calc(100% - 50px);
}
AI生成项目
css
1
2
3
4
这里,背景图片的宽度和高度会分别减去 20px 和 50px,这种动态计算的方式非常适合响应式布局。

四、响应式设计中的应用
1. 使用 cover 实现自适应背景
在响应式设计中,背景图片的尺寸必须随屏幕的变化而自动调整,而 cover 是实现这一效果的常用方法。无论屏幕尺寸如何变化,背景图片总是能够全屏覆盖,而不会失去主要内容。

.example-responsive {
background-image: url('responsive-bg.jpg');
background-size: cover;
}
AI生成项目
css
1
2
3
4
这种方式常用于设计全屏展示图片的场景,特别是在着重视觉效果的网站中。

2. 使用 contain 保证图片完整显示
当你希望背景图片完整显示在不同设备上时,contain 是更好的选择。它不会裁剪图片,而是根据屏幕尺寸进行缩放,以保证图片内容的完整性。

.example-responsive-contain {
background-image: url('responsive-bg.jpg');
background-size: contain;
}
AI生成项目
css
1
2
3
4
这在展示品牌标志或产品图片时非常有用,因为裁剪可能会影响图片内容的呈现效果。

五、多个背景图片的使用
CSS 支持为一个元素设置多个背景图片,每个背景图片都可以单独设置 background-size。例如:

.example-multiple {
background-image: url('image1.jpg'), url('image2.jpg');
background-size: 50% 50%, auto;
}
AI生成项目
css
1
2
3
4
在这个例子中,第一张图片被设置为元素的一半大小,而第二张图片保持原始尺寸。

六、background-size 与其他属性的配合
1. 与 background-position 的配合
通过 background-position,你可以精确控制背景图片在元素中的位置。当与 background-size 结合使用时,能够创建出精美的背景效果。

.example-position {
background-image: url('image.jpg');
background-size: cover;
background-position: center center;
}
AI生成项目
css
1
2
3
4
5
这种组合常用于大尺寸图片的全屏背景展示,通过居中对齐确保图片的主体部分始终可见。

2. 与 background-repeat 的配合
background-size 还可以与 background-repeat 配合使用,控制图片是否重复显示:

.example-repeat {
background-image: url('image.jpg');
background-size: 100px 100px;
background-repeat: repeat-x;
}
AI生成项目
css
1
2
3
4
5
这里,背景图片会在水平方向重复,而不会垂直重复。

七、注意事项
1. 图片比例的影响
当使用 background-size 设置背景图片的大小时,确保图片的宽高比例不会被破坏。如果图片的宽度和高度不成比例,可能会导致图片拉伸或压缩。

2. 性能影响
使用过大的图片会影响页面加载性能,尤其是在使用 cover 时。为保证页面性能,应根据具体需求选择合适的图片尺寸。

八、总结
background-size 属性为开发者提供了强大的背景图像控制能力。在实际开发中,灵活使用该属性能够极大地提升页面的视觉效果和用户体验。通过合理的设置背景图片的大小,开发者可以确保图片在各种屏幕设备上都能够以最佳状态呈现,从而创造出更加精致的用户界面。
————————————————
版权声明:本文为CSDN博主「Peter-Lu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lph159/article/details/142454250

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/964470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis分布式锁:从“能用”到“好用”,中间差了多少细节?

redis分布式锁安全吗? 1、为什么需要分布式锁与分布式锁对应的是【单机锁】,在写多线程时,避免同时操作一个共享变量产生数据问题,通常会使用一把锁来【互斥】,以确保共享变量的正确性,使用范围是在同一个进程中…

为什么你的JavaScript代码总是出bug?这5个隐藏陷阱太坑了!

🧑‍💻 写在开头 点赞 + 收藏 === 学会🤣🤣🤣你是不是经常遇到这样的情况:明明代码看起来没问题,一运行就各种报错?或者测试时好好的,上线后用户反馈bug不断?更气人的是,有时候改了一个小问题,结果引…

[电调]AM32电调调参系列 —— Complementary PWM参数的作用与分析

[电调]AM32电调调参系列 —— Complementary PWM参数的作用与分析https://blog.csdn.net/qq_39312146/article/details/153827884在AM32固件中,​​Complementary PWM(互补PWM)​​ 的选择对电调的性能、效率和发热…

Zabbix监控mysl数据库配置

用mysql自带的模板,可以监控如下内容:OPS(增删改查)、mysql请求流量带宽,mysql响应流量带宽,最后会附上相应的监控图! 一、编写脚本 check_mysql.sh vi /usr/local/zabbix/share/check_mysql.sh !/bin/bash ---…

Java 线程同步与线程间通信

Java 线程同步与线程间通信 线程同步概述 核心问题:竞争状态与线程安全 当多个线程同时访问共享资源(临界资源)时,可能导致资源数据被破坏,这种现象称为竞争状态。若一个类的对象在多线程环境中不会引发竞争状态,…

2025年惠州高端中医馆品牌权威推荐榜单:老中医问诊/代煎中药/老中医调理身体品牌精选

在健康惠州战略推进下,高端中医馆已从单纯的诊疗服务向健康管理、特色理疗、文化传承等多元化方向发展,为市民提供全方位中医药服务。 随着居民健康消费水平升级和中医文化复兴,惠州高端中医馆市场正经历从“量变”…

HarmonyOS ArkTS卡片开发:多种方式实现卡片信息刷新

在移动应用生态中,卡片作为重要信息的快捷展示形式,极大地提升了用户体验。HarmonyOS的ArkTS卡片开发为开发者提供了强大的工具,本文将基于CardInfoRefresh示例项目,深入解析ArkTS卡片开发的核心原理与实践。1. Ar…

可视化图解算法68:数组中出现次数超过一半的数字

对于LeetCode数据结构与算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。1.题目 描述 给一个长度为 n 的数组,数组中有一个数字出现的次数…

2025年惠州线下媒体公司权威推荐榜单:楼宇视频广告/社区广告/社区媒体广告源头公司精选

在信息过载的数字时代,线下媒体以其真实的场景触达和稳定的传播效果,正重获品牌方的青睐。 惠州线下媒体市场近年来保持稳定发展态势。据行业调研数据显示,社区媒体广告市场年增长率保持在15%左右,预计2025年惠州地…

题解:P9052 [PA 2021] Areny

好题,但是也没有那么难,感觉难度很大一部分在于读懂题。 题意:给出一个有向图,保证每个点都有一个出度且不为自环,现在求出对于每个 \(1\le k\le n\),满足以下条件的 \((A,B)\) 对有多少个。\(1\le A\le k,A\not…

Copula函数的参数估计与拟合

Copula函数的参数估计与拟合 Copula函数是描述随机变量间相关结构的强大工具,它将边缘分布与变量间的依赖结构分离建模。详细介绍Copula函数的参数估计与拟合方法 Copula理论基础 Copula函数定义 Copula函数是一个多元…

深度学习进阶(八)——AI 操作系统的雏形:AgentOS、Devin 与多智能体协作 - 实践

深度学习进阶(八)——AI 操作系统的雏形:AgentOS、Devin 与多智能体协作 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fon…

服务保护

服务降级、熔断 服务雪崩:一个服务失败,导致整条链路的服务都失败的情景 服务降级:服务降级是服务自我保护机制的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增的影响变得不可用,确保服务不会…

[电调]AM32电调调参系列 —— PWM Frequency参数分析

[电调]AM32电调调参系列 —— PWM Frequency参数分析https://blog.csdn.net/qq_39312146/article/details/153959408 我们来深入解析AM32电调中 ​​PWM Frequency(PWM频率)​​ 这个核心参数。这是对电机性能、效率…

【MySQL】数据库表的CURD(二) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年国内自助入住系统公司排行榜:智能化酒店解决方案全面解析

摘要 随着酒店行业数字化进程加速,2025年自助入住系统市场迎来爆发式增长,智能入住解决方案已覆盖全国85%的中高端酒店。本文基于行业数据和技术指标,对国内主流自助入住系统企业进行综合评估,为酒店经营者提供权威…

2025年国内自助入住系统公司TOP5权威推荐:智慧住宿新选择

摘要 随着人工智能和物联网技术的快速发展,2025年自助入住系统行业迎来爆发式增长,国内市场规模预计突破百亿元。智慧酒店、公寓、民宿对智能化入住解决方案需求激增,本文基于技术实力、客户口碑、服务能力等维度,…

2025年11月安徽合肥最值得信赖的十大自助入住系统企业权威推荐

摘要 随着智慧酒店行业的快速发展,2025年自助入住系统已成为酒店智能化转型的核心环节。本文基于行业数据分析和用户真实评价,为您精选安徽合肥地区十大诚信自助入住系统企业,并提供详细对比分析。文末附有免费咨询…

基于AdaBoost算法的人脸检测原理与实现

一、AdaBoost人脸检测原理 1.1 基本思想 AdaBoost(Adaptive Boosting)是一种集成学习算法,通过组合多个弱分类器来构建一个强分类器。在人脸检测中,每个弱分类器基于简单的Haar-like特征进行决策。 1.2 Haar-like特…