2013-07-31 13 views

risposta

11

La risposta ora, 3 anni dopo, è che è possibile. È necessario utilizzare transform-style: preserve-3d; sul genitore, but it's possible.

.container { 
 
    transform-style: preserve-3d; 
 
} 
 
.test1 { 
 
    width: 500px; 
 
    height: 500px; 
 
    background: red; 
 
    transform: translate3d(0, 0, 1px); 
 
} 
 
.test2 { 
 
    width: 500px; 
 
    height: 500px; 
 
    background: green; 
 
    left: 250px; 
 
    top: 250px; 
 
    position: absolute; 
 
    transform: translate3d(0, 0, 0); 
 
}
<div class="container"> 
 
    <div class="test1"> 
 
    test 
 
    </div> 
 

 
    <div class="test2"> 
 
    test #2 
 
    </div> 
 
</div>

+1

Grazie, ha contrassegnato questa risposta come accettata. Vale la pena notare che entrambi gli elementi implicati dovrebbero avere la proprietà 'transform' applicata. – mumu2

+0

Ehi. Puoi dare un'occhiata a [questo] (https://plnkr.co/KT6raJ3rBgq8aO1y8Xlk)? Il pulsante è nascosto nonostante abbia un valore di traduzione z maggiore. Grazie. – user1203349

+0

Hm. Sto ottenendo un grande quadrato rosso in Chrome 58 e Safari 10.1. –

4

Risposta breve: No. View demo che funziona a partire dal momento del distacco

Longer risposta: Non dovrebbe a, ma a volte, come ad esempio quando un elemento ha una trasformazione quando suo fratello non lo fa, alcuni browser don't handle the situation well, con conseguente z-index essere ignorato.

Generalmente, tuttavia, questo è dovuto al fatto che lo stesso transform viene applicato, non a causa dello translateZ. La soluzione in tal caso è quella di fornire tutti gli elementi rilevanti transform: translate3d(0px, 0px, 0px) o qualcosa di simile che renda il browser più accurato gli elementi