- z-index : auto | number
- z-index 属性设置元素的堆叠顺序,如果为正数,则离用户更近,为负数则表示离用户更远;
- 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面;
- z-index 仅能在定位元素上奏效(position 属性值为 relative 或 absolute 或 fixed的对象)
1. 当两个元素位于同一容器内时,它们各自的z-index决定它们的层次
2. 当两个元素位于不同容器内时,它们容器的z-index决定它们的层次
<div style="z-index:1; background-color:#333; 200px; height:200px; position:relative;"> <div style="top:60px; z-index:100; background-color:#666; 50px; height:50px; position:absolute;"> </div> </div> <div style="top:-100px; z-index:2; background-color:#999; 200px; height:200px; position:relative;"> <div style="z-index:20; background-color:#ccc; 50px; height:50px; position:absolute;"> </div> </div>
当定位元素的 'z-index' 未设置时(默认为 auto),在 IE6 IE7 IE8(Q) 下将会创建一个新的局部层叠上下文。而在其它浏览器下,则严格按照规范,不产生新的局部层叠上下文。
例:
<style type="text/css"> body { margin:0; } .p1{ top:20px; height:50px; 150px; background-color:blue;} .p2{ top:10px; left:20px; height:30px; 100px; background-color:yellow;} .p3{ top:0px; left:50px; height:100px; 50px; background-color:red;} </style> <div style="position:relative;" class="p1">1 <div style="position:absolute; z-index:1;" class="p2">2</div> </div> <div style="position:absolute;" class="p3">3</div>
效果:
解决方法:在可能出现定位元素相互覆盖的情况时,明确指定定位元素的 'z-index' 特性,避免此问题的出现。
引自:http://www.cnblogs.com/Darren_code/archive/2012/03/05/z-index.html