background-position用像素或百分比精准控制图片对齐点,如20px 10px表示背景图上距左20px、上10px的点与容器左上角对齐;必须配合background-image生效,多背景时需一一对应位置值。
直接用像素或百分比最可控,避免默认居中导致微调失效。background-position 不是“偏移量”,

background-position: 20px 10px 表示“背景图上距离左边缘 20px、上边缘 10px 的那个点”与容器左上角对齐。
px 最适合像素级微调,比如图标对齐文字基线、按钮内图标居中等场景% 时注意:0% 0% = 左上,100% 100% = 右下,50% 50% = 居中(默认值),但 50% 50% 和 center center 效果相同,只是写法不同20px 50% 合法,但 20px auto 在单值写法下不被支持(CSS Level 3 允许双值,auto 仅在某些旧浏览器 fallback 场景出现,实际慎用)只设 background-position 没有用——如果没配 background-image,或者图片加载失败,位置设置完全不触发。常见漏点:
background-position,但忘了写 background-image: url(...)
background 声明(部分浏览器会保留 position,但无图可定,无效)background 却漏掉位置参数,例如 background: url(a.png) no-repeat; —— 此时 background-position 会重置为默认 0% 0%,覆盖之前单独写的值用 transform: translate() 看似也能“挪图”,但它移动的是整个元素的渲染层,可能引发重绘、模糊(尤其在非整数像素位移时),且不改变背景图与容器的逻辑对齐关系。而 background-position 是纯布局层定位,无性能损耗,语义清晰。
background-position: -2px center;(负值表示图往左拉,容器露出更多右边)background-position: center 1px;(正值表示图往上拉,容器露出更多底部)background-color: #ff0; 和 background-repeat: repeat;,能看清图块拼接缝,快速判断偏移方向是否反了当用逗号写多个背景(CSS 多层背景),background-position 的值也必须用逗号分隔,顺序和 background-image 严格一致。错位会导致第一张图被第二张的位置值覆盖。
background-image: url(icon.png), url(gradient.png); background-position: 5px 50%, center center; background-repeat: no-repeat, repeat;
上面例子中,icon.png 的位置是 5px 50%,gradient.png 的是 center center。如果删掉第二个 center center,第二层就会回退到默认值,很可能盖住第一层的对齐效果。
负值微调容易方向搞反,尤其是 y 轴:正数让图“上移”,容器显示更多底部——这点和直觉相反,调的时候盯着图边缘和容器边框对齐最稳。