I\'m trying to find an answer to the following question:
Is an element\'s z-index style its absolute stack order, or its stack order relative to its parent?
z-index
is relative. See this detailed answer, which I wrote for a similar question.
If none of the other elements have a defined
z-index
, usingz-index: 1
will be fine.Model: How is the z-index determined?
z-index
Auto 1Auto 2Auto 1.1 Manual 1 Auto 1.1.2Auto 1.2First, the direct child nodes of the body are walked through. Two elements are encountered: #A and #F. These are assigned a z-index of 1 and 2. This step is repeated for each (child) element in the document.
Then, the manually set
z-index
properties are checked. If twoz-index
values equal, their position in the document tree are compared.Your case:
Z-index 1 Z-index 3Z-index 2You'd expect #Y to overlap #Z, because a
z-index
of 3 is clearly higher than 2. Well, you're wrong: #Y is a child of #X, with az-index
of 1. Two is higher than one, and thus, #Z will be shown over #X (and #Y).
Here is a plunker to visualize this a little better, or try the snippet below ,
.redbox,
.greenbox,
.bluebox {
height: 100px;
width: 100px;
position: relative;
color: #fff;
padding: 3px;
}
.redbox {
background: red;
z-index: 1;
}
.greenbox {
background: green;
top: 40px;
left: 40px;
z-index: 3;
}
.bluebox {
background: blue;
top: -20px;
left: 20px;
z-index: 2;
}
z: 1
z: 3
z: 2