Curso IT Fundamentos CSS 032_Diseño flexible Flex
Diseño flexible Flex
Durante mucho tiempo, las únicas herramientas confiables y compatibles entre navegadores para crear diseños CSS eran float y position. Estas dos herramientas funcionan muy bien en la mayoría de los casos, pero en algunos aspectos tienen ciertas limitaciones que dificultan la realización de tareas.
Los siguientes requisitos de diseño simples son difíciles o imposibles de implementar de manera conveniente y flexible con estas herramientas (float y position):
- Centrar verticalmente un bloque de contenido dentro del contenido padre.
- Hacer que todos los elementos hijos de un contenedor ocupen la misma cantidad de ancho/alto disponible, independientemente de cuánto ancho/alto esté disponible.
- Hacer que todas las columnas en un diseño de varias columnas adopten la misma altura, incluso si contienen diferentes cantidades de contenido.

El diseño Flex de CSS es una poderosa herramienta de diseño en CSS que se puede utilizar para crear varios diseños flexibles. Para dominar el diseño Flex de CSS, es necesario dominar los siguientes conocimientos:
- Contenedor flex (flex container): El diseño Flex consta de contenedores flex y elementos flex. El contenedor flex es el contenedor que coloca los elementos flex en el diseño Flex. El contenedor flex puede ser cualquier elemento, pero normalmente se utiliza el elemento
div. - Elemento flex (flex item): Los elementos flex son los elementos colocados en el contenedor flex. Los elementos flex pueden ser cualquier elemento, pero normalmente se utiliza el elemento
div. - Eje principal (main axis): El eje principal es la dirección horizontal o vertical de los elementos en el diseño Flex.
- Eje transversal (cross axis): El eje transversal es la dirección vertical u horizontal de los elementos en el diseño Flex.
Propiedades del contenedor flex
El contenedor flex tiene las siguientes propiedades para controlar el diseño Flex:
display: Establece el modo de visualización del contenedor flex. El contenedor flex debe establecerse endisplay: flexodisplay: inline-flexpara usar el diseño Flex.flex-direction: Establece la dirección del eje principal del diseño Flex. Los valores pueden ser:flex-startalineación al inicio del eje principal,flex-endalineación al final del eje principal,roweje principal dispuesto horizontalmente,row-reverseeje principal dispuesto horizontalmente en sentido inverso,columneje principal dispuesto verticalmente,column-reverseeje principal dispuesto verticalmente en sentido inverso.flex-wrap: Controla si los elementos dentro del contenedor flex se envuelven.nowrapvalor predeterminado, no se envuelve,wrapse envuelve,wrap-reverseenvoltorio inverso.flex-flow: Abreviatura deflex-directionyflex-wrap, dos valores que corresponden respectivamente aflex-directionyflex-wrap.justify-content: Establece la alineación de los elementos flex en el eje principal del contenedor flex. Los valores pueden ser:flex-startalineación al inicio del eje principal,flex-endalineación al final del eje principal,centeralineación central del eje principal,space-betweenalineación uniforme del eje principal (contenedor alineado al inicio y al final),space-aroundalineación uniforme del eje principal (espacios iguales entre elementos) ospace-evenlyalineación uniforme del eje principal (incluidos espacios iguales en ambos lados).align-items: Establece la alineación de los elementos flex en el eje transversal del contenedor flex. Los valores pueden ser:flex-startalineación al inicio del eje transversal,flex-endalineación al final del eje transversal,centeralineación central del eje transversal,stretchvalor predeterminado obaselinealineación de la línea base del texto de la primera línea del eje transversal. Solo actúa sobre los elementos hijos del contenedor flex.align-content: Al igual quealign-items, es una propiedad para controlar la alineación de los elementos hijos en el eje transversal, que solo tiene efecto cuando el contenedor flex tiene múltiples ejes (múltiples filas o columnas).
Propiedades del elemento flex
Los elementos flex tienen las siguientes propiedades para controlar el diseño de los elementos flex en el diseño Flex:
flex-grow: Establece la proporción de expansión del elemento flex en el eje principal. El valor puede ser un número de punto flotante entre 0 y 1.flex-shrink: Establece la proporción de reducción del elemento flex en el eje principal. El valor puede ser un número de punto flotante entre 0 y 1.flex-basis: Establece el ancho o alto predeterminado del elemento flex en el eje principal. El valor puede ser un valor de longitud, un valor de porcentaje oauto.order: Establece el orden del elemento flex en el eje principal. El valor puede ser un número entero entre 1 y 65535.
Ejemplo:
/* Estilo del contenedor flex */.flex-container { display: flex; flex-direction: row; /* Dirección del eje principal horizontal */ justify-content: space-around; /* Alineación en el eje principal */ align-items: center; /* Alineación en el eje transversal */ height: 200px; /* Establecer altura del contenedor */ border: 2px solid #333; /* Agregar borde para mejor visualización */}/* Estilo del elemento flex */.flex-item { flex: 1; /* Dividir el espacio del eje principal en partes iguales */ text-align: center; padding: 20px; background-color: #f2f2f2;}<!-- Contenedor flex --><div class="flex-container"> <!-- Elemento flex 1 --> <div class="flex-item">Item 1</div> <!-- Elemento flex 2 --> <div class="flex-item">Item 2</div> <!-- Elemento flex 3 --> <div class="flex-item">Item 3</div></div>Efecto:
