

新闻资讯
技术学院background-image 本身不控制布局,必须配合 background-size、background-position 和 background-repeat 才能实现精确控制;其中 background-size 是布局关键开关,常见值包括 cover、contain、100% 100% 和 auto 100%。
单独设 background-image 只是加载图片,不指定尺寸和定位,浏览器默认按原始
大小平铺(background-repeat: repeat),根本谈不上“布局”。关键在 background-size、background-position 和 background-repeat 三者的组合。
background-size: cover:等比缩放填满容器,可能裁剪边缘background-size: contain:等比缩放完整显示整张图,可能留白background-size: 100% 100%:强行拉伸铺满,会变形background-size: auto 100%:高度固定,宽度按比例自适应(常用于全高侧边栏背景)这个值能让背景图相对于视口固定,滚动时内容从图上滑过。但它在移动端 Safari 和部分安卓 WebView 中表现不稳定,甚至被禁用(尤其在 overflow: scroll 容器内)。
position: sticky + z-index 分层模拟background-color 作为降级底色,防止图片加载失败或禁用时空白仅用 @media 改 background-image: url(...) 会导致小屏设备仍下载大图(浏览器已提前解析 CSS)。真正响应式得靠 picture 思路的 CSS 替代方案:
section {
background-image: url('bg-small.jpg');
}
@media (min-width: 768px) {
section {
background-image: url('bg-medium.jpg');
}
}
@media (min-width: 1200px) {
section {
background-image: url('bg-large.jpg');
}
}
background-size 行为会突变 + ,CSS 背景无法做到image-set()(但目前仅 Safari 和 Chrome 111+ 支持)当叠加多个背景图或用 background-color 混合时,background-blend-mode: multiply 或 overlay 在浅色背景上正常,但系统切深色模式后,若未同步改 background-color,混合结果可能发灰甚至死黑。
#fff),应改用 CSS color-scheme 或 prefers-color-scheme 媒体查询重置background-blend-mode 不支持 rgba() 的 alpha 通道参与混合,半透图叠加效果不可控background-size 是布局开关,而不是可选项。另外,移动端对 fixed 和 blend-mode 的处理远比桌面端粗糙,真要保体验,得提前测真机。