Sistema de rede
Use nossa grade flexbox poderosa para dispositivos móveis para criar layouts de todas as formas e tamanhos graças a um sistema de doze colunas, cinco camadas responsivas padrão, variáveis e mixins Sass e dezenas de classes predefinidas.
O sistema de grade do Bootstrap usa uma série de contêineres, linhas e colunas para layout e alinhamento de conteúdo. É construído com flexbox e é totalmente responsivo. Abaixo está um exemplo e uma visão detalhada de como a grade se junta.
Novo ou não familiarizado com flexbox? Leia este guia flexbox CSS Tricks para obter informações básicas, terminologia, diretrizes e trechos de código.
O exemplo acima cria três colunas de largura igual em dispositivos pequenos, médios, grandes e extragrandes usando nossas classes de grade predefinidas. Essas colunas são centralizadas na página com o pai .container
.
Decompondo, veja como funciona:
- Os contêineres fornecem um meio de centralizar e preencher horizontalmente o conteúdo do seu site. Use
.container
para uma largura de pixel responsiva ou.container-fluid
parawidth: 100%
todos os tamanhos de janela de visualização e dispositivo. - As linhas são wrappers para colunas. Cada coluna tem horizontal
padding
(chamada de calha) para controlar o espaço entre elas. Issopadding
é então neutralizado nas linhas com margens negativas. Dessa forma, todo o conteúdo de suas colunas é alinhado visualmente no lado esquerdo. - Em um layout de grade, o conteúdo deve ser colocado dentro de colunas e somente as colunas podem ser filhas imediatas de linhas.
- Graças ao flexbox, as colunas da grade sem um
width
layout especificado serão automaticamente dispostas como colunas de largura igual. Por exemplo, quatro instâncias de.col-sm
terão automaticamente 25% de largura a partir do ponto de interrupção pequeno e acima. Consulte a seção de colunas de layout automático para obter mais exemplos. - As classes de coluna indicam o número de colunas que você gostaria de usar das 12 possíveis por linha. Então, se você quiser três colunas de largura igual, você pode usar
.col-4
. - As colunas
width
são definidas em porcentagens, portanto, são sempre fluidas e dimensionadas em relação ao elemento pai. - As colunas têm horizontal
padding
para criar as medianizes entre as colunas individuais, no entanto, você pode remover asmargin
linhas e aspadding
colunas com.no-gutters
a extensão.row
. - Para tornar a grade responsiva, há cinco pontos de interrupção da grade, um para cada ponto de interrupção responsivo : todos os pontos de interrupção (extra pequenos), pequenos, médios, grandes e extragrandes.
- Os pontos de interrupção de grade são baseados em consultas de mídia de largura mínima, o que significa que eles se aplicam a esse ponto de interrupção e a todos os acima dele (por exemplo,
.col-sm-4
aplica-se a dispositivos pequenos, médios, grandes e extragrandes, mas não ao primeiro ponto dexs
interrupção). - Você pode usar classes de grade predefinidas (como
.col-4
) ou mixins Sass para uma marcação mais semântica.
Esteja ciente das limitações e bugs do flexbox , como a incapacidade de usar alguns elementos HTML como contêineres flexíveis .
Enquanto o Bootstrap usa em
s ou rem
s para definir a maioria dos tamanhos, px
s são usados para pontos de interrupção de grade e larguras de contêiner. Isso ocorre porque a largura da janela de visualização está em pixels e não muda com o tamanho da fonte .
Veja como os aspectos do sistema de grade do Bootstrap funcionam em vários dispositivos com uma tabela prática.
Extra pequeno <576px |
Pequeno ≥576px |
Médio ≥768px |
Grande ≥992px |
Extra grande ≥1200px |
|
---|---|---|---|---|---|
Largura máxima do contêiner | Nenhum (automático) | 540px | 720px | 960px | 1140px |
Prefixo da classe | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
# de colunas | 12 | ||||
largura da calha | 30px (15px em cada lado de uma coluna) | ||||
encaixável | Sim | ||||
Ordenação das colunas | Sim |
Utilize classes de coluna específicas de ponto de interrupção para facilitar o dimensionamento de colunas sem uma classe numerada explícita como .col-sm-6
.
Por exemplo, aqui estão dois layouts de grade que se aplicam a todos os dispositivos e viewports, xs
de xl
. Adicione qualquer número de classes sem unidade para cada ponto de interrupção necessário e todas as colunas terão a mesma largura.
Colunas de largura igual podem ser divididas em várias linhas, mas havia um bug do Safari flexbox que impedia que isso funcionasse sem um . Existem soluções alternativas para versões mais antigas do navegador, mas elas não devem ser necessárias se você estiver atualizado.flex-basis
border
O layout automático para colunas de grade flexbox também significa que você pode definir a largura de uma coluna e fazer com que as colunas irmãs sejam redimensionadas automaticamente em torno dela. Você pode usar classes de grade predefinidas (como mostrado abaixo), mixins de grade ou larguras em linha. Observe que as outras colunas serão redimensionadas independentemente da largura da coluna central.
Use col-{breakpoint}-auto
classes para dimensionar colunas com base na largura natural de seu conteúdo.
Crie colunas de largura igual que abrangem várias linhas inserindo um .w-100
onde você deseja que as colunas se quebrem em uma nova linha. Torne as pausas responsivas misturando o .w-100
com alguns utilitários de exibição responsivos .
A grade do Bootstrap inclui cinco camadas de classes predefinidas para construir layouts responsivos complexos. Personalize o tamanho de suas colunas em dispositivos extra pequenos, pequenos, médios, grandes ou extragrandes como achar melhor.
Para grades que são iguais do menor ao maior dos dispositivos, use as classes .col
e . .col-*
Especifique uma classe numerada quando precisar de uma coluna de tamanho específico; caso contrário, fique à vontade para manter o .col
.
Usando um único conjunto de .col-sm-*
classes, você pode criar um sistema de grade básico que começa empilhado e se torna horizontal no pequeno ponto de interrupção ( sm
).
Não quer que suas colunas simplesmente empilhem em algumas camadas de grade? Use uma combinação de classes diferentes para cada camada, conforme necessário. Veja o exemplo abaixo para ter uma ideia melhor de como tudo funciona.
Use utilitários de alinhamento flexbox para alinhar colunas vertical e horizontalmente.
As calhas entre colunas em nossas classes de grade predefinidas podem ser removidas com .no-gutters
. Isso remove os margin
s negativos .row
e a horizontal padding
de todas as colunas filhas imediatas.
Aqui está o código-fonte para criar esses estilos. Observe que as substituições de coluna têm como escopo apenas as primeiras colunas filhas e são direcionadas por meio do seletor de atributo . Embora isso gere um seletor mais específico, o preenchimento de colunas ainda pode ser personalizado com utilitários de espaçamento .
Precisa de um design de ponta a ponta? Solte o pai .container
ou .container-fluid
.
Na prática, veja como fica. Observe que você pode continuar a usar isso com todas as outras classes de grade predefinidas (incluindo larguras de coluna, camadas responsivas, reordenações e muito mais).
Se mais de 12 colunas forem colocadas em uma única linha, cada grupo de colunas extras será, como uma unidade, agrupado em uma nova linha.
Como 9 + 4 = 13 > 12, esse div de 4 colunas é agrupado em uma nova linha como uma unidade contígua.
As colunas subsequentes continuam ao longo da nova linha.
Quebrar colunas para uma nova linha no flexbox requer um pequeno truque: adicione um elemento width: 100%
onde você deseja envolver suas colunas em uma nova linha. Normalmente, isso é feito com vários .row
s, mas nem todos os métodos de implementação podem explicar isso.
Você também pode aplicar essa quebra em pontos de interrupção específicos com nossos utilitários de exibição responsivos .
Use .order-
classes para controlar a ordem visual do seu conteúdo. Essas classes são responsivas, então você pode definir o order
ponto de interrupção por (por exemplo, .order-1.order-md-2
). Inclui suporte para todas as cinco camadas de grade 1
.12
Existem também classes responsivas .order-first
e que alteram o de um elemento aplicando e ( ), respectivamente. Essas classes também podem ser misturadas com as classes numeradas conforme necessário..order-last
order
order: -1
order: 13
order: $columns + 1
.order-*
Você pode deslocar colunas de grade de duas maneiras: nossas .offset-
classes de grade responsivas e nossos utilitários de margem . As classes de grade são dimensionadas para corresponder às colunas, enquanto as margens são mais úteis para layouts rápidos em que a largura do deslocamento é variável.
Mova as colunas para a direita usando .offset-md-*
classes. Essas classes aumentam a margem esquerda de uma coluna por *
colunas. Por exemplo, .offset-md-4
move -se .col-md-4
por quatro colunas.
Além de limpar a coluna em pontos de interrupção responsivos, pode ser necessário redefinir os deslocamentos. Veja isso em ação no exemplo de grade .
Com a mudança para o flexbox na v4, você pode usar utilitários .mr-auto
de margem como forçar colunas irmãs para longe umas das outras.
Para aninhar seu conteúdo com a grade padrão, adicione um novo .row
e um conjunto de .col-sm-*
colunas em uma .col-sm-*
coluna existente. As linhas aninhadas devem incluir um conjunto de colunas que somam 12 ou menos (não é necessário usar todas as 12 colunas disponíveis).
Ao usar os arquivos Sass de origem do Bootstrap, você tem a opção de usar variáveis e mixins Sass para criar layouts de página personalizados, semânticos e responsivos. Nossas classes de grade predefinidas usam essas mesmas variáveis e mixins para fornecer um conjunto completo de classes prontas para uso para layouts responsivos rápidos.
Variáveis e mapas determinam o número de colunas, a largura da medianiz e o ponto de consulta de mídia no qual as colunas flutuantes devem ser iniciadas. Nós os usamos para gerar as classes de grade predefinidas documentadas acima, bem como para os mixins personalizados listados abaixo.
Mixins são usados em conjunto com as variáveis de grade para gerar CSS semântico para colunas de grade individuais.
Você pode modificar as variáveis para seus próprios valores personalizados ou apenas usar os mixins com seus valores padrão. Aqui está um exemplo de como usar as configurações padrão para criar um layout de duas colunas com um intervalo entre elas.
Usando nossas variáveis e mapas Sass de grade integrados, é possível personalizar completamente as classes de grade predefinidas. Altere o número de camadas, as dimensões da consulta de mídia e as larguras do contêiner — depois recompile.
O número de colunas da grade pode ser modificado por meio de variáveis Sass. $grid-columns
é usado para gerar as larguras (em porcentagem) de cada coluna individual enquanto $grid-gutter-width
define a largura das calhas da coluna.
Indo além das próprias colunas, você também pode personalizar o número de camadas de grade. Se você quisesse apenas quatro camadas de grade, atualizaria o $grid-breakpoints
and $container-max-widths
para algo assim:
Ao fazer qualquer alteração nas variáveis ou mapas Sass, você precisará salvar suas alterações e recompilar. Isso produzirá um novo conjunto de classes de grade predefinidas para larguras de coluna, deslocamentos e ordenação. Os utilitários de visibilidade responsivos também serão atualizados para usar os pontos de interrupção personalizados. Certifique-se de definir valores de grade em px
(não rem
, em
, ou %
).