在css的定位中,我们会用到z-index这个属性.
z-index值表示谁压着谁。数值大的压盖住数值小的。
● z-index值没有单位,就是一个正整数。默认的z-index值是0。
● 只有定位了的元素,才能有z-index值。也就是说,不管相对定位、绝对定位、固定定位,都可以使用z-index值。而浮动的东西不能用。
● 如果大家都有z-index值,z-index大的元素压住z-index值小的元素。
● 如果大家都没有z-index值,或者z-index值一样,写在HTML后面可以压住前面的元素。定位了的元素,永远能够压住没有定位的元素。
● 从父现象:父亲被别人压住了,儿子也要被别人的子元素压住。
先来看第一个例子,只有定位的元素才能使用z-index
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>z-index</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.box1{
position: absolute;
width: 100px;
height: 100px;
background-color: red;
top: 100px;
left: 100px;
z-index:2;
}
.box2{
position: absolute;
width: 100px;
height: 100px;
background-color: green;
top: 180px;
left: 180px;
z-index:4;
}
</style>
</head>
<body>
<div class="box1">box1</div>
<div class="box2">box2</div>
</body>
</html>
运行结果:
box2的z-index大于box1的z-index,所以box2压住box1。这里我们对box2和 box1都设置了定位,如果不设置定位,而是设置浮动,z-index是不起任何作用的。
Css代码修改如下:
.box1{
float: left;
width: 100px;
height: 100px;
background-color: red;
top: 100px;
left: 100px;
z-index:2;
}
.box2{
float: left;
width: 100px;
height: 100px;
background-color: green;
top: 180px;
left: 180px;
z-index:4;
}
运行结果:
可以看出只是设置浮动,z-index是不起作用的。