In 3 parole: inline-block
è meglio.
Blocco in linea
L'unico inconveniente display: inline-block
dell'approccio è che in IE7 e sotto un elemento può essere visualizzato solo inline-block
se era già inline
di default. Ciò significa che invece di utilizzare un <div>
elemento devi usare un <span>
elemento. Non è affatto un grosso svantaggio perché semanticamente a <div>
è per dividere la pagina mentre a <span>
è solo per coprire un arco di una pagina, quindi non c'è un'enorme differenza semantica. Un enorme vantaggio display:inline-block
è che quando altri sviluppatori mantengono il tuo codice in un secondo momento, è molto più ovvio cosa display:inline-block
e text-align:right
sta cercando di realizzare rispetto a un'istruzione float:left
o float:right
. Il mio vantaggio preferita del inline-block
metodo è che è facile da usare vertical-align: middle
, line-height
etext-align: center
centrare perfettamente gli elementi, in modo intuitivo. Ho trovato un ottimo post sul blog su come implementare il blocco inline tra browser, sul blog di Mozilla . Ecco la compatibilità del browser .
Galleggiante
Il motivo per cui l'uso del float
metodo non è adatto al layout della tua pagina è perché la float
proprietà CSS era originariamente concepita solo per avere il testo a capo intorno a un'immagine (stile rivista) e, per progettazione, non è più adatta per scopi di layout di pagina generali. Quando si modificano elementi fluttuati in un secondo momento, a volte si verificano problemi di posizionamento perché non si trovano nel flusso di pagine . Un altro svantaggio è che in genere richiede un clearfix altrimenti potrebbe rompere gli aspetti della pagina. Il clearfix richiede l'aggiunta di un elemento dopo gli elementi flottanti per impedire al loro genitore di collassare attorno a loro che attraversa la linea semantica tra lo stile di separazione dal contenuto ed è quindi un anti-modello nello sviluppo web .
Eventuali problemi di spazio bianco menzionati nel link sopra potrebbero essere facilmente risolti con la white-space
proprietà CSS.
Modificare:
SitePoint è una fonte molto credibile di consulenza sul web design e sembrano avere la stessa opinione che io faccio:
Se non conosci i layout CSS, ti verrebbe il perdono di pensare che usare CSS fluttuanti in modi fantasiosi sia l'apice dell'abilità. Se hai consumato quanti tutorial di layout CSS puoi trovare, potresti supporre che padroneggiare i float sia un rito di passaggio. Sarai abbagliato dall'ingegnosità, stupito dalla complessità e otterrai un senso di realizzazione quando finalmente capirai come funzionano i galleggianti.
Non farti ingannare. Ti viene fatto il lavaggio del cervello.
http://www.sitepoint.com/give-floats-the-flick-in-css-layouts/
Aggiornamento 2015 - Flexbox è una buona alternativa per i browser moderni :
.container {
display: flex; /* or inline-flex */
}
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
Ulteriori informazioni
Aggiornamento del 21 dicembre 2016
Bootstrap 4 sta rimuovendo il supporto per IE9 e quindi sta eliminando i float dalle file e sta diventando pieno Flexbox.
Richiesta pull # 21389
inline
noinline-block
. Ma il primo in relazione è buono: stackoverflow.com/a/11823622/918414