En 3 palabras: inline-block
es mejor.
Bloque en línea
El único inconveniente del display: inline-block
enfoque es que en IE7 y debajo de un elemento solo se puede mostrar inline-block
si ya estaba inline
por 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-block
es que cuando otros desarrolladores mantienen su código en un momento posterior, es mucho más obvio qué display:inline-block
y text-align:right
está tratando de lograr que una float:left
o una float:right
declaración. Mi favorita beneficio del inline-block
enfoque es que es fácil de usar vertical-align: middle
, line-height
ytext-align: center
para 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 float
método no es adecuado para el diseño de su página es porque la float
propiedad 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-space
propiedad 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