2011-09-07 7 views
6

Se ho un elemento con una posizione assoluta e cambio la sua posizione sinistra e la posizione superiore rifletterà ai figli genitori? e che dire dei propri figli se non sono influenzati in quanto sono anche posizionati in assoluto da sinistra e asse superiore?Il rendering del browser si riflette se la posizione dell'elemento è assoluta?

Se cambio la larghezza/altezza di un elemento ma non ho alcuna importanza nel genitore e nei suoi figli?

risposta

11

Un oggetto con posizione assoluta non influisce sul layout della pagina. La pagina è strutturata senza riguardo per un oggetto posizionato in modo assoluto. Lo spostamento dell'oggetto posizionato in modo assoluto non causa il riflusso di altri oggetti.

Lo spostamento di un oggetto con posizionamento assoluto causerà il movimento degli oggetti figlio. Non li rifletterà, cammineranno solo con il loro contenitore genitore.

+1

grazie! è perfetto per saperlo. Questa regola è applicata a IE6 e IE7 +? –

+0

Si applica a tutti i browser. È come funziona il posizionamento assoluto. – jfriend00

+2

Il comportamento del reflow del browser può essere molto sorprendente (specialmente IE), quindi penso che la risposta brusca non sia richiesta. Vedi http://www.phpied.com/the-new-game-show-will-it-reflow/ per un esempio (prendi nota della "visualizzazione: nessuna" stranezza) –

2

Per l'elemento con posizione assoluta, non dovrebbe influire sul flusso del documento, quindi il suo cambio di posizione non dovrebbe portare al reflow (relayout) dell'albero del dom della pagina, ma se si prova this simple case con Chrome DevTools, possiamo vederlo davvero causa relayout (l'intero documento) anche se in brevissimo tempo. Probabilmente il motore di rendering non ha affrontato il problema come un caso speciale.

+0

Questo bug è stato segnalato? Sembra che un elemento assoluto non dovrebbe innescare il riflusso degli antenati. Ho visto questo anche aggiungendo/rimuovendo elementi assoluti. – aleclarson

Problemi correlati