今天有小伙件来咨询一个关于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 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代码
body{ background: url('20190621232252.png'); background-repeat:repeat-y; }
运行结果如下图,背景图片都是纵向重复
css背景图片不重复
CSS代码
body{ background: url('20190621232252.png'); background-repeat:no-repeat; }
运行结果如下图,背景图片横向以及纵向都不会重复,只会显示一张
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; }
示例演示效果:
通过上面的代码可以看出,背景颜色,背景图片,以及背景图片的显示方式,定位点等,都可以写到 background 属性里面。