特点:
1、有定位属性的元素谁在上面,比的是Z-index值,谁的值大,谁就在上面
2、有定位属性的元素默认层级是0,如果层级一样,则后来者居上。
3、只有 有定位属性的元素才有层级的概念
4、只有亲兄弟元素才能比较层级
例子:
比较前
比较后
比较后为什么还是y在上面吗?不是y先进行定位的吗?
其实这个跟那个元素先定位没有关系,只跟你定义元素的先后有关系,
虽然你CSS没有写定位,可是层级是默认的
把x的层级定为2之后 请看效果
层级关系的布局有两种解决方法:一种方法是使用标签的自然顺序和嵌套顺序来形成合理的布局。
而第一种方法却不是万能的,有时候我们需要将原本位于下层的元素移到另一个元素上方,那可以使用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的值决定谁在最上层!
理论上说是不限制的层数。一般来说,css注重的就是代码简洁,尽量缩短,代码过长,会影响加载速度。而且层级嵌套太多,对于其他人员可读性太差 。
写样式,最好不要超过3个以上的层级,只要能找到对应的标签设置样式即可。