¿Cuándo debe usar float vs inline-block vs table vs flex?

Baso la mayoría de mis opciones de diseño principales primero en el alcance del navegador, luego por requerimiento. Cuando digo “alcance del navegador”, lo que realmente quiero decir es “versión más antigua de IE que tengo que soportar”:

Mostrando cosas al lado del otro:

  • IE7: float s y clear s
  • IE8–9: inline-block , float s, clear s
  • IE10 + flex

Centrado vertical:

  • IE7–9: inline-table ; table-cell ; table
  • IE10 +: flex

Obtener cosas para ocupar espacio horizontal en función del contenido que está allí:

  • IE7: selector de hermanos no adyacentes, organización del contenido
  • IE8: selector de hermanos adyacentes, organización del contenido
  • IE9: pseudo selector de locura
  • IE10 +: flex

Navegadores modernos

Si mi alcance es IE10 +, entonces tomo un enfoque muy diferente a esto

  • Float : cuando una imagen o medio necesita “flotar” en un flujo de texto (ya sabes … cómo se debe usar)
  • inline-block : generalmente para botones o entradas; cosas que necesitan algo de relleno y margen, pero que no deben estar a nivel de bloque completo
  • flex : contenido y diseños de nivel de componente. Sin embargo, trato de evitarlo para los diseños de página. Eso no significa que no lo haré … pero creo que flex no es realmente ideal en un escenario de diseño de página … por ser flexible, eso hace que sea difícil pedir contenedores rígidos.
  • table : mesas. Solo mesas. Nunca otra cosa que no sean mesas.

  • Evito usar marcos CSS para mis propios proyectos, porque personalmente considero que la mayoría de ellos son demasiado dictatoriales para el diseño personalizado o el código de producción final. Puede pedir que difieran, por supuesto.
  • Sin embargo, siempre es una buena idea ver cómo diferentes marcos manejan sus cuadrículas. En general, verá selectores de atributos como selector [class * = “col-“], que utiliza una coincidencia de subcadena y puede interferir con otras clases, importantes y muchos puntos decimales. Para proyectos más pequeños, las cuadrículas son a menudo tan simples como flotar una columna de 75% y 25% y agregar algo de relleno.
  • En segundo lugar, la mayoría de las cuadrículas listas para enviar tienen algunos puntos de interrupción personalizados (a menudo llamados móviles / tableta / escritorio o pequeños / medianos / grandes), lo que no es ideal, porque sus puntos de interrupción dependen de dónde se rompa el contenido y no de una idea aleatoria de Un punto de interrupción del dispositivo. No es que no pueda cambiarlos usando un mixin a través de un preprocesador del que dependen muchos de estos marcos, pero diferentes proyectos tienen diferentes necesidades. La web siempre ha sido fluida, por lo que es mejor pensar en su contenido y usabilidad y luego diseñar en torno a eso …