CSS background-position 属性

CSS background-position 语法

在 CSS 中,background-position 属性用于定义元素的背景图片的位置。

语法:

background-position: 关键字;

说明:

background-position 属性的取值有 2 种。

  • 数值,比如像素值(px)、百分比(%)、em、rem 等。
  • 关键字,如下表所示和下图所示。
background-position 属性取值
取值 说明
top left(默认值) 左上
top center 靠上居中
top right 右上
center left 居中靠左
center center(或简写为 center) 正中
center right 居中靠右
bottom left 左下
bottom center 靠下居中
bottom right 右下

background-position 关键字取值

需要清楚的是,当取值为关键字时,background-position 是使用 “水平关键字” 和 “垂直关键字” 进行组合的。

  • 水平关键字:left、center、right。
  • 垂直关键字:top、center、bottom。

其中下面 2 种写法是等价的(非常重要),background-position 不区分前后顺序,只关注是使用了哪个水平关键字,或哪个垂直关键字。

/* 写法 1 */
background-position: top left;

/* 写法 2 */
background-position: left top;

此外,background-position 还支持指定 4 个值,允许我们指定背景图片距离任意边缘的偏移量。比如:

/* 图片距离右侧边缘 20px,距离底部边缘 30px */
background-position: right 20px bottom 30px;

注意:

  • 只有元素的宽高大于背景图片的宽高时,background-position 属性才会有明显效果。
  • 如果 background-position 只指定一个值,它会用于水平方向,而垂直方向默认使用 center。如果指定两个值,第一个值用于水平方向,第二个值用于垂直方向。
  • 如果使用 background-image 指定了多个背景图片,此时可以使用 background-position 为每张图片指定不同的位置。

CSS background-position 摘要

属于 CSS 背景
使用频率
是否继承
默认值 top left 或 0% 0%
兼容性 查看
官方文档 查看
MDN 查看

CSS background-position 示例

下面先来看几个简单例子:我们有一张 25px * 25px 的小图片(如下图所示),然后通过不同的 background-position 属性取值,来看看实际效果如何。

flower

示例 1:background-position 取值为 “数值”

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 200px;
            border: 1px solid gray;
            background-image: url("imgs/flower.svg");
            background-repeat: no-repeat;
            background-position: 40px 80px;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

background-position取值为“数值”

分析:

background-position: 40px 80px; 表示背景图片距离元素左边为 40px,距离顶边为 80px。

示例 2:background-position 取值为 “关键字”

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 200px;
            border: 1px solid silver;
            background-image: url("imgs/flower.svg");
            background-repeat: no-repeat;
            background-position: center right;
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

background-position取值为“关键字”

分析:

background-position: center right; 表示设置背景图片的位置为 “居中靠右”。再次强调一下,下面 2 种写法是等价的。

/* 写法 1 */
background-position: center right;

/* 写法 2 */
background-position: right center;

示例 3:background-position 设置多个背景图片的位置

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-image: url("imgs/bird.jpg"), url("imgs/goat.jpg");    /* 两个背景图片 */
            background-repeat: no-repeat;                                    /* 防止重复 */
            background-position: top left, bottom right;                     /* 设置位置 */
            background-size: 100px 100px;                                    /* 背景图片大小 */
            background-color: lightskyblue;                                /* 背景颜色 */
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

background-position设置多个背景图片的位置

分析:

在这个例子中,我们设置了两张背景图片:frog.jpg 和 goat.jpg,它们会按照指定的顺序堆叠。其中,background-position: top left, bottom right; 表示设置第一张背景图片为 “左上”,并设置第二张背景图片为 “右下”。

background-position 是一个复合属性

background-position 其实是一个复合属性,它是以下 2 个属性的简写。

上一篇: background-repeat

下一篇: background-position-x

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号