Ho un div che è il mio "popup" che sto animando per mostrare nel centro diretto della sua div genitore. Quindi utilizzo il posizionamento assoluto, i margini negativi e left + top per posizionarlo in modo da poterlo semplicemente animare con lo -webkit-transform: translateY(-100%)
al passaggio del mouse. Funziona alla grande su Safari e Mobile Safari.Bug quando si utilizza la posizione assoluta e le percentuali al centro verticale div bambino
Se si utilizzano i pixel in Chrome o Firefox, funziona correttamente, anche se si utilizzano tutte le percentuali ma si imposta la larghezza del genitore utilizzando i pixel funzionerà. MA, se usi tutte le percentuali, FF + Chrome sembra andare completamente a castello e rendere le percentuali basate su qualcosa che non riesco a capire.
Fiddle Example: Visualizza questo in Safari e FF/Chrome per vedere che il rendering di Safari #pixels
è lo stesso di #percents
e deve essere visualizzato in entrambi. E 'Safari che sta rendendo questo torto allora?
<div class="container">
<div class="pretendImage"></div>
<div id="percents"></div>
</div>
e la mia CSS:
#percents {
width:100%;
height:100%;
position:absolute;
top:50%;
left:50%;
margin:-50% 0 0 -50%;
}
.container {
position:relative;
width:50%;
height:auto;
}
.pretendImage {
width:200px;
height:200px;
}
Beh ho trovato una soluzione con l'aggiunta di un involucro supplementare. Mi piacerebbe comunque sapere che cosa causa questo.
My workaround: Fiddle Utilizza un wrapper per evitare di calcolare i margini superiori + del div interno che utilizza l'80% di larghezza/altezza.
Alexander, vuoi div (percentuali) essere al centro di div (pretendImage) o div (contenitore)? –
Spiacenti, il div (pretendImage) era solo per espandere div (contenitore) nel mio esempio e mostrare l'effetto che ha quando imposto i pixel anziché la percentuale. Nel mio codice img (pretendImage) è 'width: 100%; height: auto' ed è quindi della stessa dimensione di div (container) che volevo div (percentuali) per essere centrato come nel mio workaround con cui ho aggiornato. –