CSS Flexible Box LayoutDiseño de Caja Flexible, comúnmente conocido como Flexbox,[1] es un modelo de diseño CSS3.[2] Está en la etapa de recomendación de candidatos (CR) del W3C.[3] La disposición de flexbox permite que los elementos adaptables dentro de un contenedor se organicen automáticamente dependiendo del tamaño de la pantalla o del dispositivo. ConceptosLa mayoría de las páginas web están escritas en una combinación de HTML (Lenguaje de Marcado de Hipertexto) y CSS (Hojas de Estilos en Cascada). En resumen, HTML especifica el contenido y estructura lógica de la página, mientras que el CSS especifica cómo se ve: sus colores, fuentes, formato, diseño, y estilos. El diseño flex-box de CSS es una forma particular de especificar el diseño de las páginas HTML. Uno de los rasgos más definitorios de la disposición de flex es su capacidad para adaptarse al entorno, basada en su entorno de visualización. Las cajas flex pueden ajustarse en tamaño, ya sea disminuyendo, para evitar acaparar innecesariamente el espacio, o aumentando para dejar espacio para que el contenido se limite dentro de sus límites. Además, la disposición de las cajas flexibles es menos restrictiva en cuanto al flujo de contenidos que las de los tipos de visualización en bloque y en línea, que suelen ser unidireccionales. De hecho, no sólo puede especificarse el flujo flex direccional, a nivel de estilo, como hacia la derecha, hacia la izquierda, hacia arriba o hacia abajo; los elementos individuales dentro de un contenedor flex también pueden reordenarse y reorganizarse automáticamente para adaptarse al espacio de disposición disponible.[4] HistoriaEn la década de 2000, el uso intensivo de la Web por parte de los agentes móviles motivó "diseños líquidos" y elementos adaptables para la creciente variedad de tamaños de pantallas.[5] En la década de 2010, el uso intensivo de frameworks de diseño de Javascript, como Bootstrap, inspiró las especificaciones de diseño de flex-box y grid.[6][7] Los módulos de CSS 3 incluían soluciones similares a esta, como flexbox y grid.[8][1] TerminologíaA continuación se presentan algunos términos asociados con el modelo de diseño flexible. Flex Container
Flex item
Ejes
Flex-direction
Justify-content
Alinea-elementos
Align-content
Align-self
Directions
Order
Flex-flow
Líneas
Dimensiones
Designar un elemento flex
Designar un elemento como elemento flex es relativamente fácil. Todo lo que se necesita es establecer la propiedad display: flex;
O: display: inline-flex;
Al ajustar la pantalla a uno de los dos valores anteriores, un elemento se convierte en contenedor flex y sus hijos en elementos flex. Si se ajusta la pantalla a flex, el contenedor se convierte en un elemento de nivel de bloque, mientras que si se ajusta a la pantalla a Alinear al centroUna de las ventajas de flexbox es la capacidad de alinear fácilmente elementos del contenedor con el centro de la página, tanto vertical como horizontalmente. display: flex;
align-items: center;
justify-content: center;
Referencias
Information related to CSS Flexible Box Layout |