这个其实很容易理解,比如说两个定位元素,都设置了position: absolutetop: 0left: 0然后他们俩重叠在一起了,那么谁显示在上面呢?实际上z-index就是用来解决这个问题,就像桌子上的纸张一样,位于上面的肯定会挡住下面的。
那么什么时候用呢?其实就是我刚刚说的那个场景,z-index发生重叠后,才会考虑使用这个,但是呢,他起作用也是有前提的,比如说,最常见的就是,你首先是定位元素,也就是position不为static的元素才有效,所以说,如果你使用float这些,实际上在使用z-index是没什么用的,除了这个呢?许多css3属性也会使其z-index变得有效,比如说transform.
至于其他属性和这个属性冲突,这个我不是很理解你说的冲突指的是什么,所以就暂时不能给你一个明确的答案了。不过呢,我建议你看一篇文章,你看过以后,我相信你应该就不会再问类似的问题了
层叠上下文和z-index
当你定义的CSS中有position属性值为absolute、relative或fixed,
用z-index此取值方可生效。
此属性参数值越大,则被层叠在最上面。
例子:
<html>
<head>
<style>
.z1,.z2,.z3{position:absolutewidth:200pxheight:100pxpadding:5px 10pxcolor:#ffftext-align:right}
.z1{z-index:1background:#000}
.z2{z-index:2top:30pxleft:30pxbackground:#C00}
.z3{z-index:3top:60pxleft:60pxbackground:#999}
</style>
</head>
<body>
<div class="z1">z-index:1</div>
<div class="z2">z-index:2</div>
<div class="z3">z-index:3</div>
</body>
</html>
上面三个CSS,将根据z-index的值决定谁在最上层!