这篇文章主要介绍了CSS设置背景模糊的实现方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
在做一些页面的时候,为了让页面更好看,我们常常需要设置一些背景图片,但是,当背景图片太过花哨的时候,又会影响我们的主体内容,所以我们就需要用到 filter 属性来设置他的模糊值。
html代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!DOCTYPE html> <html> <head> <meta charset= "utf-8" > <meta name= "viewport" content= "width=device-width" > <title>JS Bin</title> </head> <body> <div class= "cover" > <h 1 >我是需要突出显示的内容 </div> </body> </html> |
但是如果直接在背景图片上使用的话,
1
2
3
4
5
6
7
8
9
10
11
|
.cover{ width : 600px ; height : 300px ; position : relative ; text-align : center ; line-height : 300px ; color : white ; background : transparent url (http:// 91 jean.oss-cn-hangzhou.aliyuncs.com/ 18 -8 -31 / 16567303 .jpg) center center no-repeat ; filter:blur( 5px ); background- size :cover; } |
可能会造成下面的这种情况。
我们会发现背景和主体内容都变糊了。
解决办法:给背景图片增加一个伪元素,将背景图片和 filter 属性设置在伪元素上,具体代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
.cover{ width : 600px ; height : 300px ; position : relative ; text-align : center ; line-height : 300px ; color : white ; } .cover::before{ content : '' ; position : absolute ; top : 0 ; left : 0 ; width : 600px ; height : 300px ; background : transparent url (http:// 91 jean.oss-cn-hangzhou.aliyuncs.com/ 18 -8 -31 / 16567303 .jpg) center center no-repeat ; filter:blur( 5px ); z-index : -1 ; background- size :cover; } |