Stacking without z-index
Наложения без Z-индекса
Когда элементы не имеют z-индекса, они накладываются в таком порядке(снизу вверх):
1. Фон и границы корневого элемента.
2. Дочерние блоки в нормальном потоке в порядке размещения(в HTML порядке).
3. Дочерние позиционированные элементы, в порядке размещения (в HTML порядке).
В следующем примере, абсолютно и относительно спозиционированным блокам определена величина и позиция таким образом, чтобы продемонстрировать правила наложения.
Примечания:
- Given a homogeneous group of elements without any z-index property, such as the positioned blocks (DIV #1 to #4) in the example, the element's stacking order is their order in the HTML hierarchy, regardless of their position.
- Standard blocks (DIV #5) in the normal flow, without any positioning property, are always rendered before positioned elements, and appear below them, even if they come later in the HTML hierarchy.
Пример
HTML
html
<div id="absdiv1">
<br /><span class="bold">DIV #1</span> <br />position: absolute;
</div>
<div id="reldiv1">
<br /><span class="bold">DIV #2</span> <br />position: relative;
</div>
<div id="reldiv2">
<br /><span class="bold">DIV #3</span> <br />position: relative;
</div>
<div id="absdiv2">
<br /><span class="bold">DIV #4</span> <br />position: absolute;
</div>
<div id="normdiv">
<br /><span class="bold">DIV #5</span> <br />no positioning
</div>
CSS
css
.bold {
font-weight: bold;
font: 12px Arial;
}
#normdiv {
height: 70px;
border: 1px dashed #999966;
background-color: #ffffcc;
margin: 0px 50px 0px 50px;
text-align: center;
}
#reldiv1 {
opacity: 0.7;
height: 100px;
position: relative;
top: 30px;
border: 1px dashed #669966;
background-color: #ccffcc;
margin: 0px 50px 0px 50px;
text-align: center;
}
#reldiv2 {
opacity: 0.7;
height: 100px;
position: relative;
top: 15px;
left: 20px;
border: 1px dashed #669966;
background-color: #ccffcc;
margin: 0px 50px 0px 50px;
text-align: center;
}
#absdiv1 {
opacity: 0.7;
position: absolute;
width: 150px;
height: 350px;
top: 10px;
left: 10px;
border: 1px dashed #990000;
background-color: #ffdddd;
text-align: center;
}
#absdiv2 {
opacity: 0.7;
position: absolute;
width: 150px;
height: 350px;
top: 10px;
right: 10px;
border: 1px dashed #990000;
background-color: #ffdddd;
text-align: center;
}
Результат
(If the image does not display in CodePen, click the Tidy button in the CSS section)
Так же посмотрите
- Stacking and float : How floating elements are handled
- Adding z-index : Using z-index to change default stacking
- The stacking context : Notes on the stacking context
- Stacking context example 1 : 2-level HTML hierarchy, z-index on the last level
- Stacking context example 2 : 2-level HTML hierarchy, z-index on all levels
- Stacking context example 3 : 3-level HTML hierarchy, z-index on the second level