今天有小伙件来咨询一个关于CSS中设置背景图片不重复的小问题,给他解答的同时顺便写一下教程,详细介绍一下CSS如何设置背景图片,以及设置背景图片的显示方式等。

CSS设置背景图片

在CSS中,我们可以利用 background 属性来设置背景图片,如下面的代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>演示背景图片</title>
    <style>
    body{
        background: url('20190621232252.png');
    }
    </style>
</head>
<!--飞鸟慕鱼博客-->
<body>
</body>
</html>

运行代码我们发现,背景图片无论是横向或是纵向都是重复,直至铺满整个显示区域。

CSS背景图片

CSS background-repeat 属性

CSS中有个 background-repeat 属性,可以设置图片背景图片是否重复以及如何重复,它的默认值是横向和纵向都会重复,如果不设置此属性的值,那么背景图片就如上面的示例代码一样,会横向以及纵向同时重复,并铺满整个要显示的区域。

它有三个可以设置的值,分别如下,其中 repeat 值为默认。

repeat :默认。背景图像将在垂直方向和水平方向重复。

repeat-x :背景图像将在水平方向重复。

repeat-y :背景图像将在垂直方向重复。

no-repeat :背景图像将仅显示一次。

inherit :规定应该从父元素继承 background-repeat 属性的设置。

css背景图片只水平方向(横向)重复

CSS代码:

body{
    background: url('20190621232252.png');
    background-repeat:repeat-x;
}

运行结果如下图,背景图片都是水平方向重复的

CSS背景图片

css背景图片纵向重复

CSS代码

body{
    background: url('20190621232252.png');
    background-repeat:repeat-y;
}

运行结果如下图,背景图片都是纵向重复

CSS背景图片

css背景图片不重复

CSS代码

body{
    background: url('20190621232252.png');
    background-repeat:no-repeat;
}

运行结果如下图,背景图片横向以及纵向都不会重复,只会显示一张

CSS背景图片

background属性小知识点:

background属性同时同时包含background-repeat,background-position, background-color,background-attachment等属性,所以我们在使用background属性的时候,可以把其它属性的值统统写到background里面,这样代码更加的简洁。

示例代码:

body{
    background-color: #ccc;
    background-image: url('20190621232252.png');
    background-repeat: no-repeat;
    background-position-x: 20px;
    background-position-y: 50px;
}

等价代码

body{
    background: #cccc url('20190621232252.png') no-repeat 20px 50px;
}

示例演示效果:

CSS背景图片

通过上面的代码可以看出,背景颜色,背景图片,以及背景图片的显示方式,定位点等,都可以写到 background 属性里面。