0
我讀過很多討論z-index的頁面,以及轉換和透視如何破壞他的上下文。我明白爲什麼我的代碼不工作,我不知道如何使它工作(或至少使用和替代)。如何在使用透視和變換時控制z-index?
正如您在圖像上看到的,選擇菜單正在被下面的卡覆蓋。
下面是這個問題的再現一個片段:
.square { position: relative; width: 100%; padding-bottom: 100%; }
.square>* { position: absolute; width: 100%; height: 100%; }
/* flip */
/* u -> uncontroled/c -> controled */
.flip { perspective: 200em; }
.flip .front, .flip .back {
\t -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden;
\t backface-visibility: hidden; position: absolute;
\t top: 0; left: 0; right: 0; bottom: 0;
}
@supports (-webkit-transform-style: preserve-3d) or (-moz-transform-style: preserve-3d) or (transform-style: preserve-3d) {
\t .flip .front, .flip .back {
\t \t -webkit-transform-style: preserve-3d; -moz-transform-style: preserve-3d; transform-style: preserve-3d; transition: 1s;
\t }
}
/* -> horizontal */
.flip .front { z-index: 2; transform: rotateY(0deg); perspective: none;}
.flip .back { transform: rotateY(-180deg); }
.flip.u:hover .back, .flip.c.active .back { transform: rotateY(0deg); }
.flip.u:hover .front, .flip.c.active .front { transform: rotateY(180deg); }
/* -> vertical */
.flip.vertical .back { transform: rotateX(-180deg); }
.flip.vertical.u:hover .back, .flip.vertical.c.active .back { transform: rotateX(0deg); }
.flip.vertical.u:hover .front, .flip.vertical.c.active .front { transform: rotateX(180deg); }
.test {
\t position: absolute; top: 70%; left: 10%; background-color: green;
\t height: 100px; width: 10px; z-index: 100;
}
<div style="width: 100px; background-color: black">
<div class="square flip u">
<div class="front" style="background-color: blue">
Front
<div class="test"></div>
</div>
<div class="back" style="background-color: red">Back</div>
</div>
<hr >
<div class="square flip u">
<div class="front" style="background-color: blue">Front</div>
<div class="back" style="background-color: red">Back</div>
</div>
</div>
我需要的是要顯示在所有前面的<div class="test">
。像this。但我不想在方形div上設置z-index,因爲它們將放置在柔性佈局Grid中。
有沒有辦法對一個元素總是呈現在所有其他人面前?沒有mathers在哪裏放置或堆棧上下文中發生了什麼。
普萊舍閱讀小心我的問題。我提供了一個項目的圖像。當然,如果我將div移到外面,它會顯示在另一個div的前面,因爲它們共享相同的上下文。問題在於,「test」div表示圖像中顯示的菜單(並且必須留在裏面)。 – arracso