En 3 palabras: inline-blockes mejor.
Bloque en línea
El único inconveniente del display: inline-blockenfoque es que en IE7 y debajo de un elemento solo se puede mostrar inline-blocksi ya estaba inlinepor defecto. Lo que esto significa es que, en lugar de usar un <div>elemento, debe usar un <span>elemento. No es realmente un gran inconveniente en absoluto porque semánticamente <div>es para dividir la página, mientras que a <span>es solo para cubrir un lapso de una página, por lo que no hay una gran diferencia semántica. Una gran ventaja display:inline-blockes que cuando otros desarrolladores mantienen su código en un momento posterior, es mucho más obvio qué display:inline-blocky text-align:right está tratando de lograr que una float:lefto una float:rightdeclaración. Mi favorita beneficio del inline-blockenfoque es que es fácil de usar vertical-align: middle, line-heightytext-align: centerpara centrar perfectamente los elementos, de una manera intuitiva. Encontré una gran publicación de blog sobre cómo implementar el bloqueo en línea entre navegadores, en el blog de Mozilla . Aquí está la compatibilidad del navegador .
Flotador
La razón por la que el uso del floatmétodo no es adecuado para el diseño de su página es porque la floatpropiedad CSS originalmente estaba destinada a tener texto ajustado alrededor de una imagen (estilo de revista) y, por diseño, no es el más adecuado para propósitos generales de diseño de página. Al cambiar los elementos flotantes más adelante, a veces tendrá problemas de posicionamiento porque no están en el flujo de la página . Otra desventaja es que generalmente requiere una solución clara; de lo contrario, puede romper aspectos de la página. El clearfix requiere agregar un elemento después de los elementos flotantes para evitar que su padre se derrumbe a su alrededor, lo que cruza la línea semántica entre la separación del estilo del contenido y, por lo tanto, es un antipatrón en el desarrollo web .
Cualquier problema de espacio en blanco mencionado en el enlace anterior podría solucionarse fácilmente con la white-spacepropiedad CSS.
Editar:
SitePoint es una fuente muy creíble para consejos de diseño web y parecen tener la misma opinión que yo:
Si eres nuevo en los diseños de CSS, se te perdonaría pensar que usar flotadores de CSS de formas imaginativas es el colmo de la habilidad. Si ha consumido tantos tutoriales de diseño CSS como pueda encontrar, puede suponer que dominar los flotantes es un rito de iniciación. Te sorprenderá el ingenio, asombrado por la complejidad, y obtendrás una sensación de logro cuando finalmente entiendas cómo funcionan los flotadores.
No te dejes engañar. Te están lavando el cerebro.
http://www.sitepoint.com/give-floats-the-flick-in-css-layouts/
Actualización de 2015: Flexbox es una buena alternativa para los navegadores modernos :
.container {
display: flex; /* or inline-flex */
}
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
Más información
21 de diciembre de 2016 Actualización
Bootstrap 4 está eliminando el soporte para IE9 y, por lo tanto, está eliminando los flotadores de las filas y completando Flexbox.
Solicitud de extracción # 21389
inline, noinline-block. Pero el primero en relación es bueno: stackoverflow.com/a/11823622/918414