--- title: background-position slug: Web/CSS/background-position tags: - Background - CSS Background - CSS Property - Reference translation_of: Web/CSS/background-position ---
{{CSSRef}}
background-position
为每一个背景图片设置初始位置。 这个位置是相对于由 {{cssxref("background-origin")}} 定义的位置图层的。
{{EmbedInteractiveExample("pages/css/background-position.html")}}
/* Keyword values */ background-position: top; background-position: bottom; background-position: left; background-position: right; background-position: center; /* <percentage> values */ background-position: 25% 75%; /* <length> values */ background-position: 0 0; background-position: 1cm 2cm; background-position: 10ch 8em; /* Multiple images */ background-position: 0 0, center; /* Edge offsets values */ background-position: bottom 10px right 20px; background-position: right 3em bottom 10px; background-position: bottom 10px right; background-position: top right 10px; /* Global values */ background-position: inherit; background-position: initial; background-position: unset;
background-position
属性被指定为一个或多个 <position> 值,用逗号隔开。
center
,用来居中背景图片。top
, left
, bottom
, right
中的一个。用来指定把这个项目(原文为 item)放在哪一个边缘。另一个维度被设置成 50%,所以这个项目(原文为 item)被放在指定边缘的中间位置。top
或 bottom
,那么另一个值不应该是 top
或 bottom
。left
或 right
,那么另一个值不应该是 left
或 right
。另外需要注意,如果背景图片的大小和容器一样,那设置百分比的值将永远无效,因为“容器和图片的差”为0(图片永远填满容器,并且图片的相对位置和容器的相对位置永远重合)。在这种情况下,需要为偏移使用绝对值(例如px)。
<position>
center
。一个值的语法: 这个值可以是:
两个值的语法: 一个定义 x 坐标,另一个定义 y 坐标。每个值可以是:
top
, left
, bottom
, right
中的一个。 如果这里给出 left
或 right
,那么这个值定义 x 轴位置,另一个值定义 y 轴位置。如果这里给出 top
或 bottom
,那么这个值定义 y 轴位置,另一个值定义 x 轴位置。left
或 right
,那么这个值(指 {{cssxref("<length>")}} 或 {{cssxref("<percentage>")}})定义相对于上边缘的 y 轴位置。 如果两个值都是 <length>
或 <percentage>
,那么第一个值定义 x 轴位置,第二个定义 y 轴位置。注意:
也就是说,top top
和 left left
是无效的。
(container width - image width) * (position x%) = (x offset value)
(container height - image height) * (position y%) = (y offset value)
100px - 300px = -200px (容器和图片的宽度差)
-200px * -25% = 50px
-200px * 0% = 0px
-200px * 50% = -100px
-200px * 100% = -200px
-200px * 125% = -250px
下面三个例子使用 {{cssxref("background")}} 来创建一个包含一个星星的黄色长方形元素。每个例子中,星星的位置是不一样的。第三个例子阐明了如何
为两个不同的背景图片指定位置。
<div class="exampleone">Example One</div>
<div class="exampletwo">Example Two</div>
<div class="examplethree">Example Three</div>
/* 被所有 div 共享 */
div {
background-color: #FFEE99;
background-repeat: no-repeat;
width: 300px;
height: 80px;
margin-bottom: 12px;
}
/* 这些例子使用 `background` 缩写 */
.exampleone {
background: url("https://developer.mozilla.org/samples/cssref/images/startransparent.gif") #FFEE99 2.5cm bottom no-repeat;
}
.exampletwo {
background: url("https://developer.mozilla.org/samples/cssref/images/startransparent.gif") #FFEE99 3em 50% no-repeat;
}
/*
多背景图片:每个图片依次和相应的 `background-position` 匹配
*/
.examplethree {
background-image: url("https://developer.mozilla.org/samples/cssref/images/startransparent.gif"),
url("https://mdn.mozillademos.org/files/7693/catfront.png");
background-position: 0px 0px,
center;
}
{{EmbedLiveSample('例子', 420, 200)}}
Specification | Status | Comment |
---|---|---|
{{SpecName('CSS3 Backgrounds', '#background-position', 'background-position')}} | {{Spec2('CSS3 Backgrounds')}} | Added support for multiple backgrounds, the four-value syntax and modified the percentage definition to match implementations. |
{{SpecName('CSS2.1', 'colors.html#propdef-background-position', 'background-position')}} | {{Spec2('CSS2.1')}} | Allows for the mix of keyword values and {{cssxref("<length>")}} and {{cssxref("<percentage>")}} values. |
{{SpecName('CSS1', '#background-position', 'background-position')}} | {{Spec2('CSS1')}} |
{{cssinfo}}
{{Compat("css.properties.background-position")}}