First, make sure that overlapper
, child1
and child2
belong to the same stacking context.
That is, make sure container
doesn't create a stacking context:
container
must not be the root element.
container
must have the default value for position
, z-index
, opacity
and isolation
properties:
position: static
or z-index: auto
opacity: 1
isolation: auto
Now, make overlapper
, child1
and child2
positioned elements, and add z-index
as you want.
#overlapper, #child1, #child2 {
position: relative;
padding: 30px;
height: 20px;
}
#overlapper {
z-index: 3;
background: red;
top: 60px;
margin-left: 20px;
}
#container {
margin-top: -40px;
}
#child1 {
z-index: 2;
background: green;
top: -40px;
}
#child2 {
z-index: 4;
background: blue;
margin-left: 40px;
}
<div id="overlapper">Overlapper</div>
<div id="container">
<div id="child1">Child 1</div>
<div id="child2">Child 2</div>
</div>