Tres columnas iguales
Usa la clase .col en un número específico de elementos y Bootstrap reconocerá cuántos elementos hay (y creará columnas de igual ancho). En el siguiente ejemplo, utilizamos tres elementos col, que obtienen un ancho de 33.33% cada uno.
Ejm
<div class="row">
<div class="col">col</div>
<div class="col">col</div>
<div class="col">col</div>
</div>
Tres columnas iguales usando números
Podemos usar también números para controlar el ancho de las columnas. Debes estar seguro que como mucho la suma de las columnas es 12, no es necesario que utilices las 12 columnas.
Ejm
<div class="row">
<div class="col-4">col</div>
<div class="col-4">col</div>
<div class="col-4">col</div>
</div>
Tres columnas desiguales
Para crear columnas desiguales puedes usar números. El siguiente ejemplo creará una división del 25% / 50% / 25%.
Ejm
<div class="row">
<div class="col-3">col-3</div>
<div class="col-6">col-6</div>
<div class="col-3">col-3</div>
</div>
Establecer el ancho de una columna
Sin embargo, es suficiente establecer solo el ancho de una columna y hacer que las columnas hermanas se redimensionen automáticamente a su alrededor. El siguiente ejemplo creará una división del 25% / 50% / 25%.
Ejm
<div class="row">
<div class="col">col</div>
<div class="col-6">col-6</div>
<div class="col">col</div>
</div>
Más columnas iguales
Ejm
<div class="row">
<div class="col">1 of 2</div>
<div class="col">2 of 2</div>
</div>
<div class="row">
<div class="col">1 of 4</div>
<div class="col">2 of 4</div>
<div class="col">3 of 4</div>
<div class="col">4 of 4</div>
</div>
<div class="row">
<div class="col">1 of 6</div>
<div class="col">2 of 6</div>
<div class="col">3 of 6</div>
<div class="col">4 of 6</div>
<div class="col">5 of 6</div>
<div class="col">6 of 6</div>
</div>
Row Cols
También puede controlar cuántas columnas deben aparecer una al lado de la otra (independientemente de cuántas columnas), con las clases .row-cols- *.
Ejm
<div class="row row-cols-1">
<div class="col">1 of 2</div>
<div class="col">2 of 2</div>
</div>
<div class="row row-cols-2">
<div class="col">1 of 4</div>
<div class="col">2 of 4</div>
<div class="col">3 of 4</div>
<div class="col">4 of 4</div>
</div>
<div class="row row-cols-3">
<div class="col">1 of 6</div>
<div class="col">2 of 6</div>
<div class="col">3 of 6</div>
<div class="col">4 of 6</div>
<div class="col">5 of 6</div>
<div class="col">6 of 6</div>
</div>
Igual alto
Si una de las columnas es más alta que la otra (debido a la altura del texto o CSS), el resto seguirá.
Ejm
<div class="row">
<div class="col">Lorem ipsum...</div>
<div class="col">col</div>
<div class="col">col</div>
</div>
Columnas Anidadas
El siguiente ejemplo muestra cómo crear un diseño de dos columnas, con otras dos columnas dentro de una de las columnas.
Ejm
<div class="row">
<div class="col-8">
.col-8
<div class="row">
<div class="col-6">.col-6</div>
<div class="col-6">.col-6</div>
</div>
</div>
<div class="col-4">.col-4</div>
</div>
Clases Responsive
El sistema de cuadrícula Bootstrap 4 tiene cinco clases:
- .col-: dispositivos extra pequeños: ancho de pantalla inferior a 576 px
- .col-sm-: dispositivos pequeños: ancho de pantalla igual o superior a 576 px
- .col-md-: dispositivos medianos: ancho de pantalla igual o superior a 768 px
- .col-lg-: dispositivos grandes: ancho de pantalla igual o superior a 992 px
- .col-xl-: dispositivos xlarge: ancho de pantalla igual o superior a 1200 px
Las clases anteriores se pueden combinar para crear diseños más dinámicos y flexibles.
Consejo: cada clase se escala, por lo que si deseas establecer los mismos anchos para sm y md, solo necesitas especificar sm.
Apilada a horizontal
El siguiente ejemplo muestra cómo crear un diseño de columna que comienza apilado en dispositivos extra pequeños, antes de volverse horizontal en dispositivos más grandes (sm, md, lg y xl):
Ejm
<div class="row">
<div class="col-sm-9">col-sm-9</div>
<div class="col-sm-3">col-sm-3</div>
</div>
<div class="row">
<div class="col-sm">col-sm</div>
<div class="col-sm">col-sm</div>
<div class="col-sm">col-sm</div>
</div>
Mezclar y combinar
Ejm
<div class="row">
<div class="col-6 col-sm-9">col-6 col-sm-9</div>
<div class="col-6 col-sm-3">col-6 col-sm-3</div>
</div>
<div class="row">
<div class="col-7 col-lg-8">col-7 col-lg-8</div>
<div class="col-5 col-lg-4">col-5 col-lg-4</div>
</div>
<div class="row">
<div class="col-sm-3 col-md-6 col-lg-4">col-sm-3 col-md-6 col-lg-4</div>
<div class="col-sm-9 col-md-6 col-lg-8">col-sm-9 col-md-6 col-lg-8</div>
</div>
Sin canalones
Agregue la clase .no-gutters al contenedor .row para eliminar las canaletas (espacio extra).
Ejm
<div class="row no-gutters">