Curso CSS Flexbox Paso a Paso
Sean bienvenidos a este nuevo tutotorial a forma de curso en CSS Flexbox, anteriormente hemos subido el curso de CSS Grid, el cual te invitamos a tomar, si ya manejas flexbox, pero si no es así, te recomendamos empezar aprendiendo flexbox y posteriormente el curso de CSS Grid, aprendiendo el primero, te será más fácil entender este curso, es decir, Grid, ya que van de la mano ambas tecnologías
sin mas preambulos empezemos con el curso
Para aplicar flexbox, es necesario crear un contenedor flexible, el cual tendrá en su interior elementos que a su vez también serán o pueden ser flexibles.
La propiedad Display define un contenedor flexible para los componentes que irán dentro de él, es decir, sus componentes hijos, definiendo los valores flex o inline-flex, todo depende de los valores que le asignamos de acuerdo a nuestras necesidades
ejemplo
Te podría interesar
Curso CSS Grid Paso a Paso
Curso CSS Animaciones Paso a Paso
Propiedades de un contenedor flexible
Un contenedor flexible puede contener las siguientes propiedades
- flex-direction
- flex-wrap
- justify-content
- align-ítems
- flex-flow
flex-direction
flex-direction: La propiedad flex-direction establece el eje principal de nuestro contenedor, definiendo así, la dirección en la que los elementos se colocan en el contenedor. Flexbox es un concepto de diseño de una sola dirección. Esta propiedad puede tomar los siguientes valores
flex-direction: row | column | row-reverse | column-reverse;
Veamos un ejemplo de cada propiedad y su resultado
flex-direction: row
Los elementos aparecerán en fila de izquierda a derecha
flex-direction: row-reverse
Los elementos aparecerán en fila de derecha izquierda
flex-direction: column
Los elementos aparecerán ordenados en columna de arriba hacia abajo
flex-direction: column-reverse
Los elementos aparecerán ordenados en columna de abajo hacia arriba
flex-wrap
De manera predeterminada los elementos de un contenedor intentan alinearse y ajustarse al máximo dentro de este. pero gracias a la propiedad flex-wrap, podemos cambiar este comportamiento
Puede tomar los siguientes valores:
flex-wrap: wrap | nowrap | wrap-reverse
flex-wrap: wrap
Permite que los elementos dentro de un contenedor se desborden, es decir, que pasen a la siguiente línea
flex-wrap: nowrap
Impide que los elementos dentro de un contenedor se desborden, es decir, que pasen a la siguiente línea
En este ejemplo nos damos cuenta del efecto que provoca el hecho de decirle a nuestro contenedor que no se desborde, (flex-wrap: nowrap) podemos observar que los elementos se salen de nuestro contenedor, si este tiene un tamaño establecido y este, es menor que la media que le dimos a los elementos
flex-wrap: wrap-reverse
Los elementos se desbordaran en forma inversa es decir de atrás hacia delante
flex-flow
shorthand o atajo de las propiedad flex-direction y flex-wrap, a su vez, esta presenta sus valores por defecto; flex-flow; row nowrap a continuación se muestra un ejemplo.
flex-flow: row nowrap
Con esta regla, estaremos indicando que deseamos que nuestros elementos se muestran en fila y que NO se desborden
flex-flow: row wrap
Con esta regla, estaremos indicando que deseamos que nuestros elementos se muestran en fila y que SI se desborden, es decir, que bajen a la siguiente línea
Practica en tu editor de código con las siguientes dos propiedades flex-flow column wrap y flex-flow column nowrap haber que sucede.
justify-content
Define la alineación de los ítems a lo largo del eje principal horizontal, básicamente, distribuye los elementos en el espacio sobrante del contenedor, de cierta manera justify-content trata de evitar el desbordamiento de los elementos ejerciendo cierto control sobre ellos, ya que estos pueden ser o no inflexiblesPuede tomar los siguiente valores
justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly | start | end | right | left | safe | unsafe
las propiedades mas utilizadas por lo general son:
justify-content: flex-start
Alinea los elementos flexibles al inicio de izquierda a derecha del contenedor
justify-content: flex-end
Alinea los elementos flexibles de derecha a izquierda del contenedor
justify-content:center
Alinea los elementos flexibles al centro del contenedor
justify-content: space-between
Deja un espacio entre los elementos sin tomar en cuenta los extremos
justify-content: space-around
Deja un espacio entre, antes y después de los elementos en las líneas
justify-content: space-evenly
El espacio es exactamente distribuido entre los elementos
align-items
Define el comportamiento de los elementos en el eje transversal vertical del contenedor, es lo más parecido a justify-content que ordena los elementos en el eje principal. mientras que align-items lo hace en el eje transversal, pero es basicamente lo mismo
Puede tomar los siguientes valores
Puede tomar los siguientes valores
align-items: stretch | flex-end | center | flex-start | baseline | first-baseline | last-baseline | start | end | self-start | self-end | safe | unsafe
align-items: flex-end
Alinea los elementos en la parte inferior del contenedor
align-items: flex-start
Alinea los elementos en la parte superior del contenedor
align-items: center
Alinea los elementos en la parte central del contenedor
align-items: stretch
Intenta rellenar todo lo posible del alto de un elemento, respetando su anchura
align-items: baseline
Los elementos se alinean tomando como base sus líneas de base alineadas
align-content: flex-start | flex-end | center | stretch | space-between | space-around | space-evenly | start | end | left | right | baseline | first baseline | last | baseline | safe | unsafe
align-content: flex-start
Alinea los elementos al inicio de izquierda a derecha del contenedor
align-content: flex-end
Alinea los elementos al final de izquierda a derecha del contenedor
align-content:center
Alinea los elementos al centro del contenedor
align-content: space-around
Deja un espacio entre, antes y después de los elementos en las líneas
align-content: space-between
Deja un espacio entre los elementos sin tomar en cuenta los extremos
align-content: space-evenly
El espacio es exactamente distribuido entre los elementos
align-content: stretch
las líneas se estiran para abarcar todo el espacio sobrante
align-content:baseline
Los elementos se alinean tomando como base sus líneas de base alineadas
Las propiedades de los elementos hijos son los siguientes
Alinea los elementos en la parte superior del contenedor
align-items: center
Alinea los elementos en la parte central del contenedor
align-items: stretch
Intenta rellenar todo lo posible del alto de un elemento, respetando su anchura
align-items: baseline
Los elementos se alinean tomando como base sus líneas de base alineadas
align-content
Define la alineación del contenedor cuando sobra espacio dentro del mismo, siempre en el eje transversal, digamos que es lo mismo que justify-content el cual alinea los elementos en el eje principal, para que esta propiedad se pueda aplicar, es necesario que exista más de una línea de elementos.
Puede tomar los siguiente valores
Puede tomar los siguiente valores
align-content: flex-start | flex-end | center | stretch | space-between | space-around | space-evenly | start | end | left | right | baseline | first baseline | last | baseline | safe | unsafe
align-content: flex-start
Alinea los elementos al inicio de izquierda a derecha del contenedor
align-content: flex-end
Alinea los elementos al final de izquierda a derecha del contenedor
align-content:center
Alinea los elementos al centro del contenedor
align-content: space-around
Deja un espacio entre, antes y después de los elementos en las líneas
align-content: space-between
Deja un espacio entre los elementos sin tomar en cuenta los extremos
align-content: space-evenly
El espacio es exactamente distribuido entre los elementos
align-content: stretch
las líneas se estiran para abarcar todo el espacio sobrante
align-content:baseline
Los elementos se alinean tomando como base sus líneas de base alineadas
Propiedades de los elementos hijos del contenedor
Una vez que hemos conocido las propiedades principales de un container, es hora de conocer las propiedades de sus hijos, es decir, los elementos que contiene dentro
Las propiedades de los elementos hijos son los siguientes
Order
La propiedad de orden nos permite controlar el orden en que aparecen en el contenedor flexible. siendo su valor por defecto 0flex-grow
La propiedad flex-grow indica cuando debe crecer un elemento con respecto a los demás elementos del contenedor, en otras palabras, es como si le diéramos un width mayor que a los otros elementos hijos, con la diferencia que con un único valor estamos especificando, puede tener como valor un número, mientras que 0 es su valor por defecto.flex-shrink
En contraposición con la propiedad flex-grow está la propiedad flex-shrink la cual es sinónimo de reducción o disminución de tamaño de un elemento con relación a sus otros elementos adyacentes, también mencionar que si le das valores negativos, no se aplicaran los cambias veamos cómo funciona
flex-basis
La propiedad flex-basis especifica la longitud inicial que deberá tener un elemento flexible,la longitud puede definirse en px, rem, em, porcentaje, etc, también es posible especificar una palabra clave, sin embargo, no se aconseja utilizar esta forma ya que pueden surgir problemas de compatibilidad con navegadores.
Su valor por defecto es auto, sin embargo, si se establece su valor en 0, el espacio restante cercano al contenido, no se toma en cuenta, por el contrario, si su valor se deja en auto, el espacio restante es distribuido, en funcion de su valor creciente.
flex
flex, es el atajo para las propiedades flex-grow, flex-shrink y flex-basis. El segundo y tercer parámetro flex-grow y flex-basis son opcionales.
Su valor predeterminado es 0 1 auto, si configura un solo valor numérico, sería 1 0. para entenderlo mejor, es recomendable saber esta sintaxis:
flex: none | flex-grow | flex-shrink | flex-basis
align-self
Esta propiedad permite que la alineación predeterminada se anule para los elementos individuales, es decir, que si has especificado determinada medida a un elemento del contenedor, por ejemplo de 200px, la propiedad align-self podrá cambiar ese comportamiento de manera individual, apuntando únicamente a los elementos que deseas modificar
align-self: auto | flex-start | flex-end | center | baseline | stretch
Nos alegra que hayas llegado hasta el final y esperamos que este curso te haya aportado algún valor y dado un poco de luz, si así es, no olvides compartir el conocimiento en las redes sociales con tus amigos, familiares o conocidos. te seguiremos trayendo más aportes de este tipo, hasta la próxima
Redes Sociales