Flexbox es un modelo de diseño de página que permite organizar elementos en una página web de forma eficiente y consistente
para lograr dos columnas con flexblox, se realiza el siguiente procedimiento.
El codigo se debe de implementar desde el elemento padre, por ejemplo:
El elemento
muestra por default todos los elementos de izquierda a derecha
con el elemento
permite distribuir el contenido horizontalmente.
con el elemento
le indicamos el tamaño y la separación que va tomar.
una alternativa es utiliar el elemento
O se puede utilizar directamente
en el elemento padre, pero la desventaje es que no tiene soporte en todos los navegadores, al ser mas
nueva.
Este ejemplo es similar al anterior, entonces aplicando lo anterior tenemos que:
el elemeneto nos
ahorra codigo, pero al no tener un soporte total, utilizamos el codigo anterior
Con FlexBox podemos lograr columnas de tamaños diferentes
Al Hijo principal
le estamos indicando que tome la mayor cantidad de espacio en pantalla y le reste un 1rem
para la separación con el valor la propiedad
Y con el selector
le estamos indicando que tome un tamaño menor en pantalla, por cada hijo al que le asignamos
este selector
Con el selector especifico
le estamos diciendo que con la propiedad tome
la primera columna en el espacio en pantalla
También se le conoce como colocación de columnas, va cambiando de acuerdo al espacio disponible
Suponiendo que tenemos el espacio de un disposito pequeño tenemos la siguiente distribución:
Primer Columna
Segunda Columna
Tercera Columna
Pero si tuvieramos más espacio disponible, suponiendo una computadora, las columnas se irían recolocando, se adapataría para obtener algo como lo siguiente:
Primer Columna
Segunda Columna
Tercera Columna
En la distribución de 480px le estamos diciendo que los dos primeros elementos tomen el 50% con
y que el tercer elemento se recorra
con ya
que los dos primeros ocupan el 100% de la pantalla
en la distribucón de 768px, estamos creando 3 columnas que sumando su porcentaje de el 100% con
Sidebar es mayormente utilizado en blogs, o tiendas virtuales, cuenta con area con un tamaño mas grande y una barra lateral de menor tamaño
con la propiedad le
estamos diciendo entonces al selector que:
Puede cambiar su orden y la ubicación de todos los elementos
Se puede traducir como cambio de diseño, ya que los elementos secundarios los puede convertir en principales y viceversa
Suponiendo que tenemos un contenido ordenado:
Podriamos lograr algo como:
Visualiza como la primera columna se posiciona en la ultima al expandir la pantalla, se logra
con
A
le creamos un subflexbox para que afecte a sus hijos directamente con
la cual que cada elemento este dentro de ella toma el 50% del espacio con 2rem de separación
en dicha media querie
En esta distribución vamos a regresarle la dirección de posicionamiento por default a
flexblox con
Para ordenar los elementos en la posicion que deseemos podemos utilizar la propiedad de en
el elemento que deseamos ordenar, enetre mas alto el numero
se va acomodar mas al final, y entre mas bajo se acomodara primero, de acuerdo a los
elementos que tengamos
Con le
estamos indicando el tamaño que van a tomar los contenedores
tiene mas espacio en pantalla asignado
con una separacion de 2 rem, a diferencia de que
estará tomando un espacio menor
Con
le estamos diciendo que cuando llegue al limite de espacio, se vayan colocando hacia abajo,
para evitar el sobreposicionamiento ya que a los subhijos de le
estamos diciendo que con tomen
cada elemento el espacio total disponible, de lo contrario sin wrap se sobreposicionarian