cover填满容器但可能裁剪,contain完整显示但可能留白;二者均保持宽高比,需配合background-position: center和background-repeat: no-repeat使用。
要让背景图片自适应容器,关键在于正确使用 background-size 属性的 cover 和 contain 值。它们都保持图片宽高比,但缩放逻辑和裁剪行为完全不同。
cover 会让背景图片等比缩放,直到图片的宽度 和 高度都 至少等于 容器的对应尺寸。这意味着图片一定能完全覆盖整个容器,但超出部分会被隐藏(即裁剪)。
background-position: center 效果更稳)contain 会让背景图片等比缩放,直到图片的宽度 或 高度 恰好等于 容器的对应尺寸。此时整张图一定完整可见,但容器内可能出现空白区域(背景色露出)。
background-repeat 或其他方案优化单独设 background-size 往往不够,建议组合使用:
background-image: u
rl(...) —— 先指定图片background-size: cover / contain —— 控制缩放方式background-position: center —— 避免图片偏移,尤其 cover 下更关键background-repeat: no-repeat —— 防止意外平铺(cover/contain 默认就是 no-repeat,但显式写上更清晰)不同屏幕下对“是否允许裁剪”需求可能变化。可用媒体查询区分:
cover 保证大气观感contain 确保关键信息不被切掉(比如人脸、文字标识)background-size: 100% 100% 强制拉伸(不推荐,会变形)作为备选