Gerador de grade CSS

Construa layouts CSS Grid visualmente · ajuste colunas, linhas, espaço e alinhamento, veja uma pré-visualização em tempo real, copie o CSS.

Propriedades da grade

Pré-visualização

CSS gerado

Como usar

  1. Defina as dimensões da grade : insira o número de colunas e linhas do seu layout.
  2. Defina as pistas : ajuste a largura de cada coluna e a altura de cada linha com unidades fr, pixels, porcentagens, auto ou minmax().
  3. Copie o CSS : as propriedades display: grid, grid-template-columns, grid-template-rows e gap geradas estão prontas para colar na sua folha de estilo.

Por que usar o gerador CSS Grid ?

O CSS Grid é o sistema de layout mais poderoso do CSS, capaz de criar layouts bidimensionais complexos que antes exigiam tabelas, floats ou JavaScript. Mas dominar grid-template-columns, unidades fr, minmax(), repeat() e áreas nomeadas exige prática. Este gerador visual permite construir qualquer grade por clicar e arrastar, depois produz um CSS limpo para usar imediatamente ou estudar para aprofundar seu entendimento do Grid.

Funcionalidades

Perguntas frequentes

O que é uma unidade « fr » em CSS Grid ?

A unidade fr (fração) distribui o espaço disponível proporcionalmente. Em uma grade de 3 colunas com 1fr 2fr 1fr, a coluna do meio recebe o dobro de espaço das externas. As unidades fr compartilham o espaço restante após a alocação das pistas de tamanho fixo.

Como criar uma grade responsiva sem media queries ?

Use repeat(auto-fill, minmax(200px, 1fr)) como valor de grid-template-columns. Isso cria tantas colunas quanto o tamanho mínimo permite, expandindo-se para preencher o espaço disponível. Os elementos se reorganizam automaticamente quando a largura do contêiner muda.

Qual a diferença entre grid-template e grid-auto ?

grid-template-columns/rows define as pistas explícitas que você especifica. grid-auto-columns/rows define o tamanho das pistas implícitas, colunas e linhas criadas automaticamente quando os elementos transbordam da grade explícita.

Uma breve história do CSS Grid

Antes do CSS Grid, os layouts web atravessaram três épocas dolorosas. Layouts baseados em tabelas (1995-2008) abusavam do elemento <table> para estrutura visual, com o «fatiamento» de composições do Photoshop em grades HTML. Layouts baseados em flutuantes (2008-2013) substituíram tabelas pela propriedade float, exigindo gambiarras «clearfix» como o micro-clearfix de Nicolas Gallagher (2011) para conter filhos com quebra de linha. Flexbox (CSS Flexible Box Layout Module Level 1, Recomendação W3C 2018) resolveu layouts unidimensionais mas tinha dificuldades com verdadeiras grades bidimensionais. A história do CSS Grid começou com a implementação -ms-grid da Microsoft no Internet Explorer 10 (2012), uma versão inicial que informou a especificação W3C. O primeiro rascunho público de trabalho W3C do CSS Grid Layout Module Level 1 saiu em abril de 2011, mas o impulso real veio do trabalho de defesa de Rachel Andrew (seu livro Get Ready for CSS Grid Layout, 2016) e Jen Simmons (defensora-desenvolvedora da Mozilla, circuito de conferências 2016-2018). A corrida entre navegadores se resolveu numa notável janela de dois meses em março de 2017: Chrome 57, Firefox 52, Safari 10.1 e Edge 16 entregaram Grid sem prefixos com semanas de diferença. O W3C marcou Grid Level 1 como Recomendação Candidata em dezembro de 2016; a Recomendação W3C final chegou em agosto de 2020. Subgrid (Level 2) chegou no Firefox 71 (dez. 2019), Safari 16 (set. 2022) e Chrome 117 (set. 2023). A próxima fronteira é o layout Masonry proposto (proposta do CSS Working Group 2020, atrás de flag no Firefox desde 2021).

A anatomia de uma grade CSS

Padrões Grid do mundo real

Padrões e marcos

Perguntas frequentes adicionais

Quando devo usar Grid em vez de Flexbox?

O atalho comunitário: Flexbox é para uma dimensão, Grid para duas. Se você está dispondo uma fileira de botões ou alinhando itens em uma única direção, Flexbox é mais simples. Se você está projetando um layout de página inteira com linhas e colunas que devem se alinhar, Grid é a ferramenta certa. Muitos layouts reais combinam ambos: Grid para o esqueleto da página, Flexbox para alinhamento em nível de componente dentro de cada área de grade. Frameworks modernos (Tailwind, Bootstrap 5) abraçam esse padrão.

O CSS Grid funciona em navegadores antigos?

Todos os navegadores evergreen (Chrome, Firefox, Safari, Edge) suportam Grid desde março de 2017. O Internet Explorer 11 tem apenas a sintaxe antiga -ms-grid (subconjunto, prefixado, faltando muitas funcionalidades). Para suporte ao IE11, use consultas @supports para recuar ao Flexbox ou layouts baseados em flutuantes. A partir de 2024, o IE11 tem menos de 0,5 % de uso global, então a maioria das equipes abandonou o fallback. O Caniuse.com relata mais de 97 % de suporte global para Grid sem prefixos.

Qual é a diferença entre grid-template-areas e grid-area?

grid-template-areas é definido no contêiner de grade e mapeia visualmente as regiões nomeadas da grade (uma string por linha). grid-area é definido em um item de grade para atribuí-lo a uma dessas regiões nomeadas. Os dois trabalham juntos: o contêiner declara o «mapa», os itens declaram «eu sou a região X». Você também pode usar grid-area diretamente com números de linha (grid-area: 1 / 1 / 3 / 4) em vez de nomes, o que é útil para layouts dinâmicos.

O que é subgrid e quando devo usá-lo?

Subgrid permite que uma grade aninhada herde as definições de trilha de sua grade pai em vez de criar as suas próprias. Isso resolve o problema de alinhar itens através de grades aninhadas, por exemplo, um cartão com layout interno que deve se alinhar com cartões circundantes. Use grid-template-columns: subgrid na grade aninhada. Disponível no Firefox 71+ (dez. 2019), Safari 16+ (set. 2022), Chrome 117+ (set. 2023). Recua para uma grade aninhada normal em navegadores que não a suportam.

Como Grid interage com acessibilidade?

O posicionamento Grid não altera a ordem de origem do DOM: os itens aparecem na posição visual que você atribui, mas leitores de tela e ordem de tabulação por teclado seguem a origem. WCAG 2.1 SC 1.3.2 Sequência significativa exige que a ordem de origem faça sentido quando os estilos forem retirados. A implicação: projete primeiro sua origem DOM para uma ordem de leitura lógica, então use Grid para posicionar os itens visualmente. Se você reordenar itens drasticamente com grid-column: 3 / 5; grid-row: 2, audite com um leitor de tela para confirmar que a ordem falada ainda faz sentido.

Ferramentas relacionadas

Visualizador de modelo de caixa CSS Gerador de várias colunas CSS Gerador de CSS Flexbox Gerador de caminhos de recorte CSS