Как z-индекс и фиксированное положение работают вместе в css
html
<div class="overlay">
</div>
<div class="fixed">
<center>
<h3>
Only this thing should be brought on top of overlay..
</h3>
</center>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br>
CSS:
.fixed{
position: fixed;
width: 100%;
height: 60px;
top:0;
left: 0;
background: #f4f4f4;
}
.fixed h3{
position:relative;
z-index: 300;
color: #fff;
}
.overlay{
background-color: #000;
top: 0;
bottom: 0;
left: 0;
right: 0;
opacity: .5;
position: fixed;
z-index: 1;
-webkit-transition: all 0.3s ease-out;
-moz-transition: all 0.3s ease-out;
-ms-transition: all 0.3s ease-out;
-o-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
Теперь, как я могу разместить h3 внутри .fixed div поверх наложения. Пожалуйста, разместите некоторое чтение на фиксированном и z-index.
http://jsfiddle.net/CvMLw/4/
Проверьте приведенный выше jsfiddle, так как я могу взять h3 поверх наложения.
Ответы
Ответ 1
Вы устанавливаете z-index
для элемента внутри фиксированного div
, который находится под наложением.
Другими словами, наложение, скрывающее значение z-index
, равно 301.
Понимаете, это похоже на блоки lego. .fixed
находится на дне с его z-индексом при 0.
Затем на .fixed
ваш h3
будет 300 блоков один над другим.
Если добавить, например, еще один div
под тегом h3
с z-index
из 150, "башня блоков" будет ниже, чем h3
, поэтому h3
будет на вершине.
Тогда есть еще один div
(.overlay
) на том же уровне DOM, что и .fixed
с более высоким z-index
, чем .fixed
. Этот блок будет размещен прямо над 300 блоками h3
.
Например:
<==============================> <- the .overlay (z-index 1)
<=>
<=>
<=>
<=>
<=> <=> <- Elements inside .fixed (random z-index)
<=> <=>
<=> <=>
<=> <=>
<=> <=>
<==============================> <- the .fixed (z-index 0)
Чтобы установить h3 сверху, поместите его на том же lvl вашего наложения или установите более высокий .fixed
z-index
.
Ответ 2
Вы не можете этого сделать, если элемент .fixed
действует как держатель для любого из его дочерних элементов.
Это означает, что если вы, например, установили h3
с абсолютной позицией снизу, она будет в нижней части родительского элемента.
z-index
работает одинаково. Его значение будет унаследовано родителем. Поскольку значение z-index
по умолчанию 0
, ваш элемент .fixed
имеет значение z-index
0
, а ваш h3
имеет первый 0
, а затем 300
.
Ответ 3
Измените
position:fixed;
to
position:absolute;
on .fixed
, то он работает.