这篇文章主要介绍了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;
}
|

