background-size 导致 background-position 失效

本文探讨了在CSS中使用background-size属性时,如何影响background-position的百分比定位,尤其是在设置为contain或cover的情况下。文章详细分析了不同场景下背景图片与容器尺寸比例对定位效果的影响,并提供了测试demo地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分情况下 background-size 导致 background-position 失效

结论

一、background-size 设置为 contain/cover 的情况下,会导致background-position 设置的百分比失效

background-size 设置为100% 的方向上 background-position 设置的百分比失效

具体表现如下
1.容器 和 背景图片 的尺寸宽高比不同的情况下
①.background-size 设置 contain 导致 图片较长方向的 百分比失效,如果背景图片是正方形,则 x 轴方向的百分比失效
②.background-size 设置 cover 导致 图片较短方向的 百分比失效,如果背景图片是正方形,则 y 轴方向的百分比失效

2.容器 和 背景图片 的尺寸宽高比相同的情况下
background-size 设置 cover/contain 导致 图片两个方向的 百分比 都失效

引申结论, 暂时没有在官方找到论证依据,仅推理获得
背景图片在正方形的情况下,会将横向作为长边
background-size: contain <=> background-size: 100% auto
background-size: cover <=> background-size: auto 100%

原理

根据 MDN 中background-position 指定百分比的原理MDN background-position 百分比原理
设置的百分比最后的表现为 (容器的 宽/高 - 背景图片的 宽/高) * 百分比

所以如果 背景图片尺寸 和 容器尺寸一致的情况下,会出现该方向background-position 百分比失效

background-size 设置为100% 的方向上 background-position 设置的百分比失效

起因

在个人项目中给一个元素设置背景图片,发现 background-size 会影响 background-position

基础知识

MDN background-size
在这里插入图片描述

验证

测试demo地址

该测试demo 托管于github,打开速度可能较慢,会出现一段时间空白,请耐心等待

或者 下载git源码

[1] : https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-size
[2] : https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-position
[3] : https://github.com/spiritlc/Influence-of-background-size-on-background-position

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值