transform-style:preserve-3d
означает «дочерние элементы элемента должны быть расположены в (одном и том же) 3D-пространстве» .Это означает, что если вы примените к ним 3d-преобразования, они будут отображены соответствующим образом.
Теперь оба ваших элемента имеют одинаковое точное значение z-index
.По умолчанию это auto
, что соответствует 0
.
Но если повернуть элемент на 180deg
по оси Y или X, он в основном перевернется.Это означает, что он будет на другом конце того же значения z-index
(потому что вы установили transform-style:preserve-3d
).Это означает, что он будет на противоположном конце стека (от его обычной позиции - которая находится на вершине его предшествующих братьев и сестер).
Таким образом, вы либо даете ему определенно больший z-index
, либо вы меняете их позиции.
Чтобы понять больше этого поведения, поиграйте с rotateY
.При других значениях вы заметите, что видна только половина элемента, а эта половина ближе к вам, учитывая угол поворота в трехмерном пространстве.
При 90
и 270
градусах он будет невидим какон перпендикулярен (и не имеет ширины) и в 180
он «полностью» повернут в трехмерном пространстве, что означает, что он находится за другим элементом, который имеет то же значение z-index и (технически) »за "it.
" Еще одно "исправление" - удалить preserve-3d
из родительского элемента (или переместить его в дочерний элемент, как предположил И.Джонсон), поэтому каждый из 2 элементов отображается в отдельном пространстве.и каждое представление этого пространства будет составлено в соответствии с их соответствующим положением элементов в контексте размещения.