Elementos de CSS Flexbox


Tabla de contenido

    Mostrar tabla de contenidos


Elementos secundarios (elementos)

Los elementos secundarios directos de un contenedor flexible se convierten automáticamente en elementos flexibles (flex).

1

2

3

4

El elemento de arriba representa cuatro elementos flexibles azules dentro de un contenedor flexible gris.

Ejemplo

<div class="flex-container">
  <div>1</div>
  
  <div>2</div>
  <div>3</div> 
  
  <div>4</div>
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>Flexible Items</h1>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div>3</div> 
  <div>4</div>
</div>

<p>All direct children of a flexible container becomes flexible items.</p>

</body>
</html>


Las propiedades del elemento flexible son:

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

La propiedad del orden

La propiedad order especifica el orden de los elementos flexibles.

1

2

3

4

El primer elemento flexible del código no tiene por qué aparecer como el primer elemento del diseño.

El valor del pedido debe ser un número, el valor predeterminado es 0.

Ejemplo

La propiedad order puede cambiar el orden de los elementos flexibles:

<div class="flex-container">
  <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>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container>div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The order Property</h1>

<p>Use the order property to sort the flex items as you like:</p>

<div class="flex-container">
  <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>

</body>
</html>



La propiedad de crecimiento flexible

La propiedad flex-grow especifica cuánto crecerá un elemento flexible en relación con el resto de los elementos flexibles.

1

2

3

El valor debe ser un número, el valor predeterminado es 0.

Ejemplo

Haga que el tercer elemento flexible crezca ocho veces más rápido que los otros elementos flexibles:

<div class="flex-container">
  <div style="flex-grow: 1">1</div>
  
  <div style="flex-grow: 1">2</div>
  <div style="flex-grow: 
  8">3</div> 
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The flex-grow Property</h1>

<p>Make the third flex item grow eight times faster than the other flex items:</p>

<div class="flex-container">
  <div style="flex-grow: 1">1</div>
  <div style="flex-grow: 1">2</div>
  <div style="flex-grow: 8">3</div>
</div>

</body>
</html>




La propiedad flex-shrink

La propiedad flex-shrink especifica cuánto se reducirá un elemento flexible en relación con el resto de los elementos flexibles.

1

2

3

4

5

6

7

8

9

10

El valor debe ser un número, el valor predeterminado es 1.

Ejemplo

No permita que el tercer elemento flexible se encoja tanto como los otros elementos flexibles:

<div class="flex-container">
  <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>8</div>
  <div>9</div>
  
  <div>10</div>
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container>div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The flex-shrink Property</h1>

<p>Do not let the third flex item shrink as much as the other flex items:</p>

<div class="flex-container">
  <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>8</div>
  <div>9</div>
  <div>10</div>
</div>

</body>
</html>



La propiedad de base flexible

La propiedad flex-basis especifica la longitud inicial de un elemento flexible.

1

2

3

4

Ejemplo

Establezca la longitud inicial del tercer elemento flexible en 200 píxeles:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex-basis: 200px">3</div>
    <div>4</div>
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The flex-basis Property</h1>

<p>Set the initial length of the third flex item to 200 pixels:</p>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex-basis:200px">3</div>
  <div>4</div>
</div>

</body>
</html>



La propiedad flexible

La propiedad flex es una propiedad abreviada para Propiedades flex-grow, flex-shrink y flex-basis.

Ejemplo

Haga que el tercer elemento flexible no pueda crecer (0), no se pueda encoger (0) y con un longitud inicial de 200 píxeles:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex: 
  0 0 200px">3</div>
    <div>4</div>
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container>div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The flex Property</h1>

<p>Make the third flex item not growable (0), not shrinkable (0), and with an initial length of 200 pixels:</p>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex: 0 0 200px">3</div>
  <div>4</div>
</div>

</body>
</html>



La propiedad de alineación propia

La propiedad align-self especifica la alineación del elemento seleccionado dentro del contenedor flexible.

La propiedad align-self anula la alineación predeterminada establecida por la propiedad align-items del contenedor.

1

2

3

4

En estos ejemplos usamos un contenedor de 200 píxeles de alto, para demostrar mejor el propiedad align-self:

Ejemplo

Alinee el tercer elemento flexible en el medio del contenedor:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="align-self: 
  center">3</div>
    <div>4</div>
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  height: 200px;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The align-self Property</h1>

<p>The "align-self: center;" aligns the selected flex item in the middle of the container:</p>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="align-self: center">3</div>
  <div>4</div>
</div>

<p>The align-self property overrides the align-items property of the container.</p>

</body>
</html>


Ejemplo

Alinee el segundo elemento flexible en la parte superior del contenedor y el tercer elemento flexible en la parte superior del contenedor. fondo del contenedor:

<div class="flex-container">
  <div>1</div>
  <div style="align-self: 
  flex-start">2</div>
    <div style="align-self: 
  flex-end">3</div>
    <div>4</div>
</div>

Pruébelo usted mismo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  height: 200px;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The align-self Property</h1>

<p>The "align-self: flex-start;" aligns the selected flex item at the top of the container.</p>
<p>The "align-self: flex-end;" aligns the selected flex item at the bottom of the container.</p>

<div class="flex-container">
  <div>1</div>
  <div style="align-self: flex-start">2</div>
  <div style="align-self: flex-end">3</div>
  <div>4</div>
</div>

<p>The align-self property overrides the align-items property of the container.</p>

</body>
</html>



Propiedades de los elementos de CSS Flexbox

La siguiente tabla enumera todas las propiedades de los elementos CSS Flexbox:

align-self

Especifica la alineación de un elemento flexible (anula la propiedad align-items del contenedor flexible)

flex

Una propiedad abreviada para flex-grow, flex-shrink y flex-basis propiedades

flex-basis

Especifica la longitud inicial de un elemento flexible.

flex-grow

Especifica cuánto crecerá un elemento flexible en relación con el resto de los elementos flexibles dentro del mismo contenedor.

flex-shrink

Especifica cuánto se reducirá un elemento flexible en relación con el resto de los elementos flexibles dentro del mismo contenedor.

order

Especifica el orden de los elementos flexibles dentro del mismo contenedor.