Свойство z-index как правило применяется только исключительно к позиционированным элементам (relative, absolute, fixed и т. д.) https://jsfiddle.net/8e1hxkmy/ Вот есть элемент Р и Н1, Р находится под Н1 потому что у Н1 задан приоритет слоя z-index:2; Далее у Р есть вложенный элемент EM у которого z-index ещё больше чем у H1, но так как ЕМ не позиционированный он не должен налаживаться на Н1 но, если его контейнеру Р присвоить display:flex; так ЕМ сразу начинает налаживаться на H1. Почему такое поведение?
p{
margin-bottom: -30px;
position: relative;
color: red;
display: flex;
background: blue;
}
h1{
position: relative;
z-index: 2;
background: green;
}
p em{
background: red;
z-index: 3;
}
<p>13231<em>666</em></p>
<h1>Aaaaa</h1>
Это поведение согласно спецификации w3.org.
Элементы контейнера Flex
отрисовываются как inline
элементы, за исключением возможности применять z-index
даже если position: static
4.3. Flex Item Z-Ordering
Flex items paint exactly the same as inline blocks [CSS21], except that order-modified document order is used in place of raw document order, and z-index values other than auto create a stacking context even if position is static.
z-index
применяется не только для позиции, а ко всем гибким элементам. Гибкими элементы делает position: absolite, fixed, static...
и так же гибким их делает display: flex
. Приоритетными его блоки становятся потому, что p
стоит перед h1
p{
margin-bottom: -30px;
position: relative;
color: red;
display: flex;
background: blue;
z-index: 1;
}
h1{
position: relative;
z-index: 2;
background: green;
}
p em{
background: red;
z-index: 3;
}
<p>13231<em>666</em></p>
<h1>Aaaaa</h1>
Как меняется крипторынок и к чему готовиться владельцам криптообменников
Ребят, запутался совершенно, в браузере все нормна мобилке отлично работает, safari не подключает ни одного стиля, как быть?)
Всем здравствуйте! Не так давно начала осваивать верстку и пока испытываю проблемы с подбором инструментов к задаче
Почему так line-height работает: