我喜欢百分比 background-position 的工作方式

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

前几天,当我们在年鉴中详细介绍 background 属性时,我学到了一些东西。 这是一个非常直观的东西,我想我以前从未停下来想过它。

默认情况下,background-position0 0,即 左上角。 现在假设您将其设置为 50% 0。 该背景图像现在位于 顶部中央。 它会计算出该图像的大小,并将图像的中心定位在元素的中心。

这与您使用 <img> 并将其定位在 left: 50%; 不同,在这种情况下,图像的左边缘将位于中点。 如果您想将其居中,则需要将其向左拉回(负向平移或负向边距)。

以下是该差异的可视化

查看 Chris Coyier 在 CodePen 上的笔 background-position 和 left 之间的区别 (@chriscoyier)。

因此,如果您设置类似 background-position: 25% 25% 的内容,则会将图像定位,使其自身 25% 的宽度与元素 25% 的宽度对齐。 垂直方向也是如此。

这里没有革命性的东西。 我只是认为它设计得很巧妙。 您不必过多考虑它,因为它就像您假设的那样工作。 当然,如果我为 background-position 设置 右上,则图像将在右上角绘制。 我不会考虑浏览器必须如何计算图像大小和元素大小并在这些位置对齐轴线。