虽然组件里面有,但我就想自己做一个(其实是特殊情况要用到)
三个图层
最底层:是页面原来的内容层
中间层:蒙层(设置透明度)
最外层:对话框层
怎么给他们分层呢,这就要了解z-index属性了:
z-index 属性设置元素的堆叠顺序,拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面
元素可拥有负的 z-index 属性值
Z-index 仅能在定位元素上奏效(例如 position:absolute;)
Z-index 仅能在定位元素上奏效(例如 position:absolute;)
Z-index 仅能在定位元素上奏效(例如 position:absolute;)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图层</title>
</head>
<body>
<div class="div1">这是div1这是div1这是div1这是div1
</div>
<div class="div2">这是div2
</div>
<div class="div3">这是div3
</div>
<div class="div4">这是div4
</div>
</body>
<style scoped>
/* div1不给 z-index,默认为最底层 */
.div1 {
text-align: center;
line-height: 600px;
width: 600px;
height: 600px;
border: 1px solid black;
background: yellowgreen;
}
/* div2是蒙层,可以给个透明度,opacity(0~1)值越大越不透明 */
.div2 {
text-align: center;
line-height: 300px;
width: 100%;
height: 100%;
position: absolute;
left: 0px;
top: 0px;
z-index: 2;
opacity: 0.8;
background: rgb(0, 0, 0);
}
/* div3 和div4的z-index值相同,属于同一层,这一层可以写提示内容,可以给一个background,这样就能隐藏底下图层的内容了 */
.div3 {
text-align: center;
line-height: 200px;
width: 200px;
height: 200px;
border: 1px solid black;
position: absolute;
left: 250px;
top: 250px;
z-index: 3;
/* background: red; */
}
.div4 {
text-align: center;
line-height: 200px;
width: 200px;
height: 200px;
border: 1px solid black;
position: absolute;
left: 10px;
top: 250px;
z-index: 3;
background: red;
}
</style>
</html>