Bootstrap 5: Grade Grande


Índice

    Mostrar índice

Exemplo de grade grande

  XSmall Small Medium Large Extra Large XXL
Class prefix .col- .col-sm- .col-md- .col-lg- .col-xl- .col-xxl-
Screen width <576px >=576px >=768px >=992px >=1200px >=1400px

No capítulo anterior apresentamos um exemplo de grade com classes para dispositivos de pequeno e médio porte. Usamos duas divs (colunas) e demos a elas uma divisão de 25%/75% em dispositivos pequenos e uma divisão de 50%/50% em dispositivos médios:

<div class="col-sm-3 col-md-6">....</div>
<div class="col-sm-9 col-md-6">....</div>

Mas em dispositivos grandes o design pode ser melhor com uma divisão de 33%/66%.

Dispositivos grandes são definidos como tendo uma largura de tela de 992 pixels a 1199 pixels.

Para dispositivos grandes usaremos as classes .col-lg-*:

<div class="col-sm-3 col-md-6 col-lg-4">....</div>
<div class="col-sm-9 col-md-6 col-lg-8">....</div>

Agora o Bootstrap vai dizer "no tamanho pequeno, olhe para as classes com -sm- e use-as. No tamanho médio, olhe para as classes com -md- > neles e use-os. No tamanho grande, observe as classes com a palavra -lg- e use-as.

O exemplo a seguir resultará em uma divisão de 25%/75% em dispositivos pequenos, uma divisão de 50%/50% em dispositivos médios e uma divisão de 33%/66% em dispositivos grandes, xlarge e xxlarge. Em dispositivos muito pequenos, ele será empilhado automaticamente (100%):

.col-sm-3 .col-md-6 .col-lg-4
.col-sm-9 .col-md-6 .col-lg-8

Exemplo

<div class="container-fluid">
  <div class="row">
    <div class="col-sm-3 col-md-6 col-lg-4">
      <p>Lorem ipsum...</p>
    </div>
    <div class="col-sm-9 col-md-6 col-lg-8">
      <p>Sed ut perspiciatis...</p>
    </div>
  </div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>

<div class="container-fluid mt-3">
  <h1>Large Grid</h1>
  <p>The following example will result in a 25%/75% split on small devices, a 50%/50% split on medium devices, and a 33%/66% split on large, xlarge and xxlarge devices. On extra small devices, it will automatically stack (100%).</p>
  <p>Resize the browser window to see the effect.</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col-sm-3 col-md-6 col-lg-4 bg-primary text-white">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </div>
      <div class="col-sm-9 col-md-6 col-lg-8 bg-dark text-white">
        Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
      </div>
    </div>
  </div>
</div>

</body>
</html>

Observação: certifique-se de que a soma seja 12 ou menos (não é necessário usar todas as 12 colunas disponíveis):

Usando apenas grandes

No exemplo abaixo, especificamos apenas a classe .col-lg-6 (sem .col-md-* e/ou .col-sm-*). Isso significa que dispositivos grandes, xlarge e xxlarge dividirão 50%/50%. No entanto, para dispositivos médios, pequenos E extra pequenos, ele será empilhado verticalmente (100% de largura):

Exemplo

<div class="container-fluid">
  <div class="row">
    <div class="col-lg-6">
      <p>Lorem ipsum...</p>
    </div>
    <div class="col-lg-6">
      <p>Sed ut perspiciatis...</p>
    </div>
  </div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>

<div class="container-fluid mt-3">
  <h1>Large Grid</h1>
  <p>The following example will result in a 50%/50% split on large, xlarge and xxlarge devices (<strong>992px and above</strong>). On medium, small and extra small devices, it will automatically stack (100%).</p>
  <p>Resize the browser window to see the effect.</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col-lg-6 bg-primary text-white">
        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.<br>
        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
      </div>
      <div class="col-lg-6 bg-dark text-white">
        Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
      </div>
    </div>
  </div>
</div>

</body>
</html>

Colunas de layout automático

No Bootstrap 5, existe uma maneira fácil de criar colunas de largura igual para todos os dispositivos: basta remover o número de .col-lg-* e usar apenas a .col-lg em um número especificado de elementos col. O Bootstrap reconhecerá quantas colunas existem e cada coluna terá a mesma largura.

Se o tamanho da tela for menor que 992px, as colunas serão empilhadas horizontalmente:

<!-- Two columns: 50% width on large and up-->
<div class="row">
  <div class="col-lg">1 of 2</div>
  <div class="col-lg">2 of 2</div>
</div>
<!-- Four columns: 25% width on large and up -->
<div class="row">
  <div class="col-lg">1 of 4</div>
  <div class="col-lg">2 of 4</div>
  <div class="col-lg">3 of 4</div>
  <div class="col-lg">4 of 4</div>
</div>
1 of 2
2 of 2

1 of 4
2 of 4
3 of 4
4 of 4

Experimente você mesmo →

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>

<div class="container-fluid mt-3">
  <h1>Responsive Auto Layout Columns</h1>
  <p>In Bootstrap 5, there is an easy way to create equal width columns: just use the <code>.col-lg</code> class on a specified number of col elements. Bootstrap will recognize how many columns there are, and each column will get the same width.</p>
  <p>If the screen size is <strong>less than 992px</strong>, the columns will stack horizontally.</p>
  <div class="container-fluid">
    <div class="row">
      <div class="col-lg bg-primary text-white">1 of 2</div>
      <div class="col-lg bg-dark text-white">2 of 2</div>
    </div>  
  </div>
  <br>
  
  <div class="container-fluid">
    <div class="row">
      <div class="col-lg bg-primary text-white">1 of 4</div>
      <div class="col-lg bg-dark text-white">2 of 4</div>
      <div class="col-lg bg-primary text-white">3 of 4</div>
      <div class="col-lg bg-dark text-white">4 of 4</div>
    </div>  
  </div>
</div>

</body>
</html>