Considerate la vostra HTML originale:
html, body {
height: 100%;
}
<div style="position:relative;top:0%;left:0%;height:100%;width:100%">
<div style="position:absolute;top:50%;left:50%;">test</div>
</div>
L'interno/bambino div
ha position: absolute
, quindi è fuori dal flusso contenuto dell'elemento genitore e la volontà non contribuisce all'altezza o alla larghezza dell'elemento genitore.
Il genitore div
si trova nel flusso di contenuti, ma non ha contenuto, quindi l'altezza intrinseca di sarebbe zero. Tuttavia, hai specificato height: 100%
, ma questo non farà nulla perché lo div
non ha un riferimento di altezza su cui basare un valore calcolato. Quindi il valore di altezza calcolato per il genitore div
è zero.
Come risultato, l'offset top
dell'elemento figlio viene calcolato a 50%
di zero, in modo che sia posizionato sul bordo superiore del blocco principale.
Si avrebbe bisogno sia di specificare un'altezza per il genitore div
o assegnare
html, body {height: 100%}
in quanto ciò consentirebbe al div
di calcolare la sua altezza in base all'altezza del body
, che si basa su l'altezza di html
, che è al 100%, prende quella dello schermo.
fonte
2015-01-30 14:44:47
È stato specificato l'altezza per il contenitore padre del primo div? cioè il corpo? – Lee
La sinistra sta funzionando bene qui http://jsfiddle.net/8b9Lny2a/ quale browser stai usando. –
Scusate, l'altezza e la larghezza del genitore sono 100%. Sembra che circa il 100% dell'altezza non funzioni, ma se imposto il genitore div 1000px che è specificato, verrà specificato anche il top div del bambino ... Voglio che bambino div'top sensibile all'altezza del suo genitore? È possibile? – HornedReaper