Elementos Flex CSS
Como vimos anteriormente, los contenedores flex tienen propiedades para establecer su visualización y el de sus elementos flex, ahora aprenderemos a establecer los propiedades propias para los elementos flex.
Para fines de visualización se establecen las siguientes propiedades CSS para el contenedor y sus elementos:
CSS:
.contenedor-flex {
display: flex;
background-color: #f1f1f1;
}
.contenedor-flex > div {
background-color: DodgeBlue;
color: white;
width: 100px;
margin: 10px;
text-align: center;
line-height: 75px;
font-size: 30px;
}
HTML:
<div clss="contenedor-flexx">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
Muestra:
Las propiedades para los elementos Flex son:
order
flex-grow
flex-shrink
flex-basis
flex
align-self
La propiedad order
La propiedad order
establece el orden en que los elementos se mostrarán.
El primer elemento flex en el código no tiene que aparecer como el primer elemento en el diseño (o visualización en pantalla).
El valor order
debe ser un número, el valor por defecto es 0.
HTML:
<div class="contenedor-flex">
<div style="order: 3;">1</div>
<div style="order: 2;">2</div>
<div style="order: 4;">3</div>
<div style="order: 1;">4</div>
</div>
Muestra:
La propiedad flex-grow
La propiedad flex-grow
especifica que tanto un elemento flex aumentará con relación al resto de los elementos.
El valor debe ser un número, el valor por defecto es 0.
En siguiente ejemplo hace que el tercer elemento aumente ocho veces más que los otros elementos flex:
HTML:
<div class="contenedor-flex">
<div style="flex-grow: 1;">1</div>
<div style="flex-grow: 1;">2</div>
<div style="flex-grow: 8;">3</div>
</div>
Muestra:
La propiedad flex-shrink
La propiedad flex-shrink
establece que tanto un elemento flex encojerá con relación al resto de los elementos.
El valor debe ser un número, el valor por defecto es 1.
En el siguiente ejemplo, no se permite que el tercer elemento se encoja tanto como los otros elementos flex:
HTML:
<div class="contenedor-flex">
<div>1</div>
<div>2</div>
<div style="flex-shrink: 0;">3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
</div>
Muestra:
La propiedad flex-basis
La propiedad flex-basis
especifica la longitud de un elemento flex.
En el siguiente ejemplo, es establece la longitud inicial del tercer elemento flex en 200 pixeles:
HTML:
<div class="contenedor-flex">
<div>1</div>
<div>2</div>
<div style="flex-basis: 200px;">3</div>
<div>4</div>
</div>
Muestra:
La propiedad flex
La propiedad flex
es una propiedad abreviada para las propiedades flex-grow
, flex-shrink
y flex-basis
.
En el siguiente ejemplo, hace que el tercer elemento no aumente, no encoja y con una longitud inicial de 200 pixeles:
HTML:
<div class="contenedor-flex">
<div>1</div>
<div>2</div>
<div style="flex: 0 0 200px;">3</div>
<div>4</div>
</div>
Muestra:
La propiedad align-self
La propiedad align-self
especifica la alinieación del elemento seleccionado dentro del contenedor flex.
La propiedad align-self
anula la alineación establecida por el contenedor con la propiedad align-items
.
En el siguiente ejemplo, se establece la altura del contenedor en 200 pixeles y se establece la alineación al tercer elemento flex en medio del contenedor:
HTML:
<div class="contenedor-flex">
<div>1</div>
<div>2</div>
<div style="align-self: center;">3</div>
<div>4</div>
</div>
Muestra:
En el siguiente ejemplo, se establece la alineación del segundo elemento en lo alto del contenedor y la alineación del tercer elemento en lo bajo del contenedor:
HTML:
<div class="contenedor-flex">
<div>1</div>
<div style="align-self: flex-start;">2</div>
<div style="align-self: flex-end;">3</div>
<div>4</div>
</div>