manlili blog

css3实现页面遮罩效果

今天把页面遮罩的效果发一下,之前遮罩都是用JS实现的,忽然发现CSS3里面的box-shadow属性除了做立体阴影外,还可以做页面的遮罩.
下面来看一下完成的动态效果:
黑色遮罩
从上图可以看出,就是当鼠标悬浮在按钮上时,会出现整个页面的遮罩,当然调一下透明度就是网页中经常看到的当鼠标悬浮在一张图片上时,周围的其他图片都被遮罩了,这样就达到了突出这张图片的效果,其实这个效果做出来很简单.

主体程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="css/mask_layer.css" type="text/css">
</head>
<body>
<p></p>
<div class="mask_layer">
<a href="#" target="_blank">透明遮罩</a>
</div>
</body>
</html>

css样式

先来说一下原理:
box-shadow属性: 水平阴影的位置 垂直阴影的位置 阴影模糊的程序 阴影的尺寸 阴影的颜色 是否为内阴影;
既然知道了原理,那么我们就可以在鼠标悬浮在框架上的时候让阴影的尺寸比这个页面还大,这样就可以遮盖了.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.mask_layer{
width: 200px;
height: 30px;
border: 1px #7ed2ed solid;
background: #7ed2ed;
text-align: center;
line-height: 30px;
position: relative;
z-index: 999;
}
.mask_layer a{
text-decoration:none;
color: #323232;
font-weight: bold;
}
.mask_layer:hover{
box-shadow:0 0 0 9999px rgba(0,0,0,.4);
-webkit-box-shadow:0 0 0 9999px rgba(0,0,0,.4);
-moz-box-shadow:0 0 0 9999px rgba(0,0,0,.4);
-ms-box-shadow:0 0 0 9999px rgba(0,0,0,.4);
-o-box-shadow:0 0 0 9999px rgba(0,0,0,.4);
}

额…….看完样式是不是想吐血,太简单了,写出来我都不好意思了,需要注意框架需要置于最上方,所以需要用到z-index属性。

请我喝杯果汁吧!