css怎样让背景图片不平铺

1.背景图片平铺的问题

在css中,背景图片的平铺方式可以通过background-repeat属性来设置。background-repeat属性有四种值可选,分别是:

- repeat:背景图像在纵向和横向上平铺;

- repeat-x:背景图像在横向上平铺,在纵向上不平铺;

- repeat-y:背景图像在纵向上平铺,在横向上不平铺;

- no-repeat:背景图像不平铺。

1.1 repeat方式

先看一下使用repeat方式平铺的示例代码:

background-repeat: repeat;

下面是示例演示图:

![repeat示例演示图](https://img-blog.csdnimg.cn/20200412094321521.gif)

可以看到,背景图片在横向和纵向上都进行了平铺。但是有时候我们并不想让背景图片完全平铺。

1.2 repeat-x和repeat-y方式

分别看一下repeat-x和repeat-y的示例代码:

background-repeat: repeat-x;

示例演示图如下:

![repeat-x示例演示图](https://img-blog.csdnimg.cn/20200412094321114.gif)

background-repeat: repeat-y;

示例演示图如下:

![repeat-y示例演示图](https://img-blog.csdnimg.cn/20200412094321500.gif)

可以看到,repeat-x方式只在横向上平铺,而repeat-y方式只在纵向上平铺。

1.3 no-repeat方式

no-repeat方式不平铺背景图片,完整的示例代码如下:

background-repeat: no-repeat;

示例演示图如下:

![no-repeat示例演示图](https://img-blog.csdnimg.cn/20200412094321671.gif)

2.背景图片不平铺的方法

在以上示例中,我们可以看到使用background-repeat属性可以控制背景图片的平铺方式。那么如何让背景图片不平铺呢?其实有两种方法可以解决这个问题。

2.1.使用background-size属性

background-size属性可以控制背景图片的大小,具体语法如下:

background-size: 宽度 高度;

如果只设置一个值,那么表示宽高均为这个值,如果不设置某个值,则使用原图的比例。

比如下面的示例代码:

background-image: url("https://img-blog.csdn.net/20180823002845930?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lvdXJfY29kZTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80");

background-repeat: no-repeat;

background-size: 400px;

width: 100%;

height: 400px;

这里设置了background-image、background-repeat、background-size三个属性,使得背景图片不进行平铺,并把图片的宽度设置为400px,高度按比例自适应。演示效果如下:

![background-size示例演示图](https://img-blog.csdn.net/20180823003435315?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lvdXJfY29kZTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)

这种方法适用于当只有一张背景图片,使用过程中可以进行单独的设置。

2.2.使用background属性

我们可以使用background属性来设置背景图片,并设置其中的多个属性值。比如下面的示例代码:

background: url("https://img-blog.csdn.net/20180823002845930?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lvdXJfY29kZTQy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80") no-repeat center center fixed;

background-size: cover;

这里首先使用background属性设置背景图片,设置了图片的src、是否平铺、水平、垂直对齐方式、图片是否随页面滚动固定等多个属性值。然后再使用background-size属性使图片自适应容器大小,保证完全显示。

演示效果如下:

![background整合示例演示图](https://img-blog.csdn.net/20180823003819741)

这种方法适用于需要设置多个背景属性时使用,比较方便。

3.总结

通过以上两种方法,我们可以很容易地控制背景图片的平铺方式,同时也能很好地适应各种场景的需求。需要提醒的是,在使用背景图片时,要注意一些反文化问题,如背景图片的大小,是否会影响页面加载速度,以及移动端的适配等问题。