¿Es mejor usar 'float' o 'display:inline-block' en CSS?

  • Autor Autor Charlie Araiza
  • Fecha de inicio Fecha de inicio
Charlie Araiza

Charlie Araiza

Épsilon
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola, que tal.

Ahora mismo estoy haciendo una app web (sin diseñadores) pero a la hora de maquetar me salió esa duda. ¿Qué es mejor, usar "float:left" o "display:inline-block"?

Con los diseñadores que he trabajado, he visto que algunos usan "float" y otros "inline-block". Para ustedes ¿Qué es lo recomendable?

Gracias
 
Amigo hay varias diferencias, particularmente uso más float left por que se adapta a la forma en que desarrollo webs.

¿Cómo desarrollo?
Suelo desarrollar en base a filas y columnas (a veces uso foundation o bootstrap), si piensas usar float:left tendrás que usar siempre un contenedor con clearfix para que la web no se deforme, a este clearfix yo le llamo .Row, mientras que a las columnas .Column (las columnas son float left).

¿Por qué no uso inline-block?
Porque suelo trabajar con medida de fuente en EM (me ayuda al responsive), y el inline-block siempre deja un espacio entre div y div, y aunque hay soluciones (https://escss.blogspot.com/2012/03/display-inline-block-y-sus-empeno-en.html), me resulta incómodo para utilizar en el layout de una web.

¿Cuándo uso inline-block?
Hay muchas veces que uso inline-block, y por lo general es para incluir íconos dentro de un botón de texto, ahí sirve mucho el vertical-align, que sirve para alinearlos verticalmente.

¿Tienes algún ejemplo de desarrollo con float?
Claro que sí:

HTML:
<div class="Row">
  <div class="Column25">
    <!-- Esta es una columna de 25% de ancho, podría usarse como un sidebar -->
  </div>
  <div class="Column75">
    <!-- Esta es una columna de 75% de ancho, podría usarse como un el contenido principal -->
  </div>
</div>

Y el CSS sería

Insertar CODE, HTML o PHP:
.Row:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0;
 }

.Column25 {
  width: 25%;
  float: left;
}

.Column75 {
  width: 75%;
  float: left;
}

En realidad es un simple ejemplo y va desde mi punto de vista y la manera en que trabajo. No olvides considerar que yo suelo trabajar con preprocesadores (Pug y Stylus), lo que ayuda bastante al desarrollo frontend.
 
Es mejor inline-block, o mejor aún, trabajar con cajas flexibles.
 
Gracias [MENTION=2907]Delmon[/MENTION], muy buena información; lo tomaré en cuenta 🙂

Saludos.

- - - Actualizado - - -

Es mejor inline-block, o mejor aún, trabajar con cajas flexibles.

Gracias por responder. También pensé en las cajas flexibles pero por lo que he leído todavía tiene algunos problemas de compatibilidad. Al final me decanté más por escoger inline-block o float.

Saludos.
 
Evita usar el float, como ya te mencionarón usa mejor flex. :encouragement:

No sé dónde viste eso de la compatibilidad de flex (créeme que puedes tener más problemas con float que con flex, claro no el mismo tipo de problemas): Can I use... Support tables for HTML5, CSS3, etc

Saludos.
 
Última edición:
Gracias [MENTION=2907]Delmon[/MENTION], muy buena información; lo tomaré en cuenta 🙂

Saludos.

- - - Actualizado - - -



Gracias por responder. También pensé en las cajas flexibles pero por lo que he leído todavía tiene algunos problemas de compatibilidad. Al final me decanté más por escoger inline-block o float.

Saludos.

Revisa siempre la compatibilidad aquí.

Can I use... Support tables for HTML5, CSS3, etc

Flex solo no funciona en <IE10
 
Evita usar el float, como ya te mencionarón usa mejor flex. :encouragement:

No sé dónde viste eso de la compatibilidad de flex (créeme que puedes tener más problemas con float que con flex, claro no el mismo tipo de problemas): Can I use... Support tables for HTML5, CSS3, etc

Saludos.

En el link que publicaste ahí está el problema de compatibilidad al que me refiero.

Es una web que va más para uso universitario. Al menos en la universidad donde estudié, todavía usan mucho Windows Vista/W7 con IE por default en las computadoras de los laboratorios y bibliotecas.

Saludos.
 
En el link que publicaste ahí está el problema de compatibilidad al que me refiero.

Es una web que va más para uso universitario. Al menos en la universidad donde estudié, todavía usan mucho Windows Vista/W7 con IE por default en las computadoras de los laboratorios y bibliotecas.

Saludos.

Instalales FF y/o Chrome y ponles el icono de IE. :welcoming:
 
Si tienes que dar soporte a navegadores antiguos flexbox no es la mejor opción. La opción mas correcta es usar la propiedad display para maquetar tu web. La propiedad float fue originalmente creada para colocar texto envolviendo imágenes, no está pensada para situar cajas a lo largo de tu página, aunque su uso en ese sentido está muy extendido y si lo haces bien no deberías tener mayores problemas. Lo preferible es no abusar de los floats.
 
Atrás
Arriba