2010-02-07 16 views
14

Ho un layout di base in cui il div del corpo è impostato su una larghezza specifica. E con i margini sinistro e destro sono impostati su auto. Risultante nel div centrato.CSS - Posizionamento assoluto o float?

Ora, quando si tratta di posizionare tutti gli elementi secondari all'interno di questo div, è meglio utilizzare il posizionamento assoluto o le coordinate fisse? Questi elementi secondari sono fondamentalmente colonne di testo, alcune immagini e alcuni titoli. Ho scoperto che fluttuare tutti a sinistra li fa ammucchiare uno dietro l'altro. Che è fondamentalmente ciò che voglio. Ma sarebbe meglio specificare le coordinate? Mi sono imbattuto in un piccolo errore di margine comune con IE che vedi. E so che il posizionamento assoluto lo risolverebbe. Ma sarebbe una soluzione sporca?

Voglio dire, il layout stesso è liquido in un certo senso. Ma il div del corpo ha la sua larghezza. Quindi i sotto elementi non si muoveranno indipendentemente dalla risoluzione.

risposta

14

Nota: il bug margine in IE può anche essere "corretto" avvolgendo il div con un margine in una div senza margine e facendo fluttuare il div esterno.

Per quanto riguarda l'assoluto rispetto al float: suggerisco di dare un'occhiata a this page, che sembra un buon riassunto, e chiedetevi se uno qualsiasi dei contro alza una bandiera rossa per voi.

Personalmente utilizzerei il posizionamento assoluto se tutti i contenuti del div sono statici e se float se alcuni sono dinamici. Ma questa è una risposta soggettiva.

+1

Ok, quindi non stavo pensando così, eh? :) Penso che resterò con il posizionamento assoluto questa volta. :) –

+0

Come da politica StackOverflow, sarebbe bello se si potesse riassumere ciò che è sul link che hai dato – Baumr

1

Non vedo un problema con l'utilizzo del posizionamento assoluto. Un possibile svantaggio sarebbe che il tuo foglio di stile sarebbe un po 'più difficile da mantenere, perché avresti specificato le larghezze e le posizioni. Se dovessi cambiare la larghezza di una delle tue colonne in futuro, dovresti aggiornare il valore del pixel in 2 punti. IMO utilizzando float e margine sarebbe più facile da modificare in futuro.

Problemi correlati