background-size: cover 单独使用无效是因为 body 默认高度由内容决定,需设置 html、body { height: 100%; margin: 0; } 并将背景设在 html 上;cover 等比缩放填满容器可能裁剪,contain 则完整显示留白;移动端旧版 iOS Safari 建议用 fixed 遮罩 div 替代。
用 background-size: cover 确实能让背景图铺满整个页面,但默认只作用于元素内容区,不是视口——必须配合 html 和 body 的高度设置才真正全屏。
background-size: cover 单独写没反应?常见错误是只给 body 设置背景,但 body 默认高度由内容撑开,不是 100% 视口高。浏览器会按 body 的实际高度(可能只有几行文字那么高)来缩放图片,看起来像没生效。
html 和 body 都占满视口:html, body {
height: 100%;
margin: 0;
}html 或 body 上(推荐 html,避免滚动条干扰)background-attachment: fixed 会影响 cover 行为,慎用background-size: cover 和 contain 的关键区别
cover 是「等比缩放,完全覆盖容器」,可能裁剪边缘;contain 是「等比缩放,完整显示整张图」,可能留白。全屏背景几乎总是用 cover。
cover:图片宽高比不变,缩放到至少一边填满容器,另一边可能溢出contain:缩放到最多一边贴边,另一边必有空白下面这段代码能稳定实现“图随窗口缩放、始终铺满、不重复、居中”:
html {
background: url('bg.jpg') no-repeat center center;
background-size: cover;
height: 100%;
}
body {
margin: 0;
height: 100%;
}
no-repeat 必须加,否则小图会平铺center center 控制定位,避免图片偏移html 背景仍固定在视口,不会随内容滚动(这是预期行为)body 并加 background-attachment: scroll
iOS
Safari 旧版本(iOS 12 及更早)对 html 元素应用 background-size: cover 有兼容问题,稳妥做法是用一个 div 做全屏遮罩层:
#bg-cover {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: url('bg.jpg') no-repeat center center;
background-size: cover;
z-index: -1;
}
div 必须 position: fixed 且 z-index: -1,才能不遮挡内容html 高度,天然兼容所有设备transform 或 perspective,可能影响 fixed 定位,需额外测试最常被忽略的是 html { height: 100% } 这一行——少了它,cover 就只是在“几像素高”的容器里缩放,再大的图也看不出效果。
# css
# css3
# html
# 浏览器
# safari
# ai
# ios
# 区别
# 移动端适配
# 为什么
# position
# margin
# background
# transform
# 全屏
# 铺满
# 的是
# 这是
# 是因为
# 都不
# 不出
# 平铺
# 最多
# 这段
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
如何在 Go 中高效缓存与分发网络视频流
如何在 Go 中正确反序列化多个并列的 XML 元素(而非 XML 数组)
如何在Golang中实现微服务负载均衡_Golang负载均衡策略与实现示例
php订单日志怎么记录评价_php记录订单评价日志方法【方法】
c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】
php串口通信波特率怎么选_根据硬件手册设置正确波特率【方法】
Windows如何拦截2345弹窗广告_Windows拦截2345弹窗方法【步骤】
如何在 Python 中将 ISO 8601 时间戳转换为日期并计算日期差值
php8.4xdebug无法调试怎么办_php8.4xdebug配置问题解决【解答】
Win11 explorer.exe频繁崩溃_修复Win11资源管理器无限重启【步骤】
PHP接收参数长度超限怎么办_修改postmaxsize设置教程【解答】
Python网络异常模拟_测试说明【指导】
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
Go 中的 := 运算符:类型推导机制与使用边界详解
Win10怎样安装PPT模板_Win10安装PPT模板教程【步骤】
如何在Golang中捕获结构体方法错误_Golang方法返回error处理实践
Win11怎么恢复旧版开始菜单_通过软件还原Win10风格菜单【详解】
mac本地php环境如何开启curl_curl扩展启用与测试步骤详解【汇总】
Win11怎么设置任务栏图标大小_Windows11注册表TaskbarSi修改
Win11局域网共享怎么设置 Win11文件夹网络共享教程【详解】
c++怎么调用nana库开发GUI_c++ 现代风格窗口组件与事件处理【实战】
如何使用Golang处理静态文件缓存_提高页面加载速度
Python字符串处理进阶_切片方法解析【指导】
Mac如何与安卓手机传文件_Mac和Android设备互通【必备工具】
Python大型项目拆分策略_模块化解析【教程】
Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)
c++中explicit(bool)的用法 c++条件性explicit【C++20】
Win11怎么设置组合键快捷方式_Windows11自定义快捷键操作
如何使用Golang配置安全开发环境_防止敏感信息泄露
Win11怎么查看激活状态_查询Windows 11是否已永久激活【详解】
如何使用Golang搭建本地API测试环境_快速验证接口功能
Win10怎样清理C盘浏览器缓存_Win10清理浏览器缓存步骤【步骤】
如何使用Golang实现多重错误处理_Golangerror组合与判断方法
Win11关机界面怎么改_Win11自定义关机画面设置【工具】
Win11怎么设置默认输入法 Win11固定中文输入法【步骤】
C++中的协变与逆变是什么?C++函数指针与返回类型详解【类型系统】
Win11怎么设置指纹解锁 Win11笔记本录入指纹登录【教程】
如何使用Golang管理模块版本_Golanggo mod tidy与升级方法
Win11任务栏颜色怎么改_Win11自定义任务栏配色设置【美化】
Python技术债务管理_长期维护解析【教程】
如何使用 Python 合并文件夹内多个 Excel 文件并避免权限错误
PHP 中如何在函数内持久化修改引用变量的指向
Mac的访达(Finder)怎么用_Mac文件管理入门教程【详解】
c# await 一个已经完成的Task会发生什么
Win11如何暂停系统更新 Win11暂停更新最长时限设置【步骤】
Laravel 查询 JSON 列:高效筛选包含数组中任意值的记录
Python数据挖掘核心算法实践_聚类分类与特征工程
Win11文件扩展名怎么显示 Win11查看文件后缀名设置【步骤】
windows系统如何安装cab更新补丁_windows手动安装更新包教程
Win11怎么清理C盘系统错误报告_Win11清理系统错误报告技巧【教程】
2026-01-02
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。