css - 为什么父元素设置 float 后子元素 z-index 失效?
本文介绍了css - 为什么父元素设置 float 后子元素 z-index 失效?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
我想通过设置.mask-layer:{ position: absolute; z-index: 9;}
遮住img
,但是父元素.mask-layer-show
设置为float后 子元素z-index
就失效了,是什么问题?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div class="box">
<div class="mask-layer-show">
<a href="#"><img src="img/product04.png" alt=""></a>
<div class="mask-layer">
</div>
</div>
<div class="mask-layer-show">
<a href="#"><img src="img/product04.png" alt=""></a>
<div class="mask-layer">
</div>
</div>
</div>
<style media="screen">
.box{
width: 1000px;
height: 720px;
}
.box .mask-layer-show{
float: left;
width: 500px;
height: 360px;
position: relative;
}
.mask-layer{
//遮罩层
width: 500px;
height: 360px;
border: 1px solid red;
position: absolute;
z-index: 9;
background-color: #CCCCCC;
}
</style>
</body>
</html>
解决方案
1.代码注释错误
在css中注释代码 使用的是 /遮罩层/2.在.mask-layer中,因为你加了定位position,是元素脱离了文档流,所以要指定它的位置,机left,top
.mask-layer{
/* 遮罩层*/
width: 500px;
height: 360px;
border: 1px solid red;
position: absolute;
left:0;
top:0;
z-index: 9;
background-color: #CCCCCC;
}
3.遮罩不建议用纯色,建议用rgba
4.展示效果
5.附代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.box{
width: 1000px;
height: 720px;
margin: 0 auto;
}
.box .mask-layer-show{
float: left;
width: 500px;
height: 360px;
position: relative;
z-index: 1;
}
.box .mask-layer-show a{
display: block;
width: 500px;
height: 360px;
overflow: hidden;
}
.mask-layer{
/* 遮罩层*/
width: 500px;
height: 360px;
border: 1px solid red;
position: absolute;
left:0;
top:0;
z-index: 9;
background:rgba(0,0,0,.5);
}
</style>
</head>
<body>
<div class="box">
<div class="mask-layer-show">
<a href="#"><img src="img/1.png" alt=""></a>
<div class="mask-layer">
</div>
</div>
<div class="mask-layer-show">
<a href="#"><img src="img/1.png" alt=""></a>
<div class="mask-layer">
</div>
</div>
</div>
</body>
</html>
这篇关于css - 为什么父元素设置 float 后子元素 z-index 失效?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文