Domine o CSS Grid: Crie Layouts Incríveis com Facilidade
Explorando o Subgrid: Avance Seus Layouts com CSS Grid
Neste tutorial, abordaremos recursos mais avançados do CSS Grid
Introdução ao Grid: display: grid, grid-template-columns/rowsAprenda os fundamentos do CSS Grid e transforme seus projetos com layouts responsivos e organizados, usando técnicas modernas e práticas., em especial o uso do Subgrid, que permite um alinhamento refinado de elementos
Tags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. em grades aninhadas. Se você já possui conhecimento prévio de Grid (definindo colunas, linhas e áreas), este conteúdo o ajudará a levar seus layouts a outro nível de organização e controle.
Visão Geral do Subgrid🔗
Embora o Grid tradicional possibilite criar layouts altamente flexíveis, muitas vezes é preciso manter a coerência de alinhamento em elementos
Tags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. internos (filhos de um grid) sem precisar repetir configurações de colunas ou linhas. É aí que entra o Subgrid.
O Subgrid, introduzido no CSS Grid
Introdução ao Grid: display: grid, grid-template-columns/rowsAprenda os fundamentos do CSS Grid e transforme seus projetos com layouts responsivos e organizados, usando técnicas modernas e práticas. Level 2, herda as definições de espaçamento e alinhamento da grade “pai”, permitindo que todos os elementos
Tags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis.-filho se alinhem de maneira precisa com a grade estabelecida anteriormente.
| Recurso | Descrição |
|---|---|
| grid | Sistema de layout bidimensional com definição de linhas, colunas e áreas para os elementos. |
| subgrid | Permite que um grid aninhado herde as linhas ou colunas (ou ambos) do grid “pai”, mantendo alinhamentos consistentes. |
Por que Usar Subgrid?🔗
1. Coerência Visual: Em um layout com várias seções horizontais, cada uma pode se beneficiar do mesmo esquema de colunas, sem precisar configurar repetidamente.
2. Manutenção Simplificada: O grid interno não precisa repetir grid-template-columns
Introdução ao Grid: display: grid, grid-template-columns/rowsAprenda os fundamentos do CSS Grid e transforme seus projetos com layouts responsivos e organizados, usando técnicas modernas e práticas. ou grid-template-rows
Introdução ao Grid: display: grid, grid-template-columns/rowsAprenda os fundamentos do CSS Grid e transforme seus projetos com layouts responsivos e organizados, usando técnicas modernas e práticas.. Basta ativar o Subgrid e as definições de espaçamento e tamanho vêm do grid ancestral.
3. Redução de Código: Elimina redundâncias no CSS
O que é CSS?Descubra como o CSS transforma a aparência das páginas web, separando conteúdo de design para melhor organização e flexibilidade., pois a mecânica de divisão das colunas ou linhas é reaproveitada automaticamente.
Tipos de Subgrid🔗
Por padrão, você pode optar por herdar as colunas, herdar as linhas ou ambos. Essas heranças
Herança Básica: Introdução ao ConceitoDescubra como a herança em CSS simplifica a organização dos estilos, promovendo economia de código e manutenção facilitada. Aprenda o conceito agora! são feitas em diferentes dimensões:
grid-template-columns
Introdução ao Grid: display: grid, grid-template-columns/rowsAprenda os fundamentos do CSS Grid e transforme seus projetos com layouts responsivos e organizados, usando técnicas modernas e práticas.: subgrid;grid-template-rows
Introdução ao Grid: display: grid, grid-template-columns/rowsAprenda os fundamentos do CSS Grid e transforme seus projetos com layouts responsivos e organizados, usando técnicas modernas e práticas.: subgrid;- Ou mesmo definir ambos simultaneamente:
.subgrid-container {
display: grid;
grid-template-columns: subgrid;
grid-template-rows: subgrid;
}
Criando um Subgrid na Prática🔗
Suponha que você já tenha um contêiner principal com um Grid estabelecido em três colunas. Em seguida, dentro de cada coluna, exista outro elemento
Tags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. que precisa alinhar suas subdivisões exatamente pelas mesmas colunas do grid externo. Veja um exemplo simplificado:
<div class="grid-principal">
<section class="subgrid-container">
<div>Elemento 1</div>
<div>Elemento 2</div>
<div>Elemento 3</div>
</section>
</div>
.grid-principal {
display: grid;
grid-template-columns: 1fr 2fr 1fr; /* Três colunas de larguras diferentes */
gap: 10px; /* Espaçamento entre colunas */
/* Outras propriedades que julgar necessárias */
}
.subgrid-container {
display: grid;
grid-template-columns: subgrid; /* Herda as colunas do .grid-principal */
}
Observe que, nesse contexto, .subgrid-container não especifica a largura
Seletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. das colunas em fr, pois o Subgrid já entende que deve acompanhar as linhas de grade definidas no pai (
Grid Responsivo: fr, minmax(), repeat()Descubra como criar grids flexíveis e responsivos com CSS Grid, explorando fr, minmax() e repeat() para layouts modernos em seu site..grid-principal). Dessa forma, todos os elementos
Tags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. dentro de .subgrid-container respeitam as divisões de 1fr, 2fr, 1fr.
Curiosidade: Se o seu layout demandar que o subgrid herde apenas a configuração das colunas, mas não as linhas, você poderia adicionar uma definição de linha independente para a subgrade ou simplesmente pular o grid-template-rows.
Controlando o Espaçamento e a Herança🔗
Um ponto essencial é que o subgrid normalmente herda os gaps (propriedade
Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. gap) do grid-pai. Assim, se você ajusta o gap: 10px; no grid principal, o subgrid continuará seguindo esse valor. Caso você precise que uma subgrade use um espaçamento diferente, alguns navegadores permitem sobrescrever localmente:
.subgrid-container {
display: grid;
gap: 20px; /* Um novo gap nessa subgrade */
grid-template-columns: subgrid;
}
Com esse ajuste, toda a distribuição de colunas ainda se baseia no grid “pai”, porém o espaçamento entre os itens de .subgrid-container será diferente.
Notas de Compatibilidade🔗
O Subgrid é um recurso relativamente novo e ainda pode ter compatibilidade parcial em alguns navegadores. Para navegadores que não suportam subgrid, será necessário planejar um fallback, geralmente adicionando propriedades
Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. de grid para esses navegadores ou usando técnicas avançadas de feature queries (@supports) para isolar a sintaxe de Subgrid.
Dicas Finais🔗
- Simplicidade é Chave: Use o Subgrid se faz sentido que as colunas ou linhas internas respeitem o grid pai exatamente. Caso contrário, layouts independentes podem ser mais flexíveis.
- Verifique o Suporte: Utilize feature queries, incluindo algo como:
@supports (grid-template-columns: subgrid) {
.subgrid-container {
grid-template-columns: subgrid;
}
}
Isso ajuda navegadores mais antigos a ignorarem a instrução que não entendem.
- Manutenção Simplificada: Tenha em mente que, ao herdar as definições do grid “pai”, você concentra as configurações em um único lugar, reduzindo possíveis inconsistências e bugs visuais.
Conclusão🔗
O uso de Subgrid é um grande passo à frente na criação de layouts ainda mais consistentes e manteníveis. Com ele, você herda as definições de alinhamento do grid “pai”, economizando código e garantindo coerência vertical e horizontal em layouts complexos.
Para quem já domina as fundações do Grid, experimentar o Subgrid trará mais controle em projetos avançados, especialmente em seções altamente hierarquizadas onde a usabilidade e a estética caminham lado a lado.
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- DevDocs - CSS documentation that includes advanced features such as CSS Grid Level 2: devdocs.io/css/
- FreeCodeCamp - Offers interactive learning on responsive web design, including CSS Grid: www.freecodecamp.org/learn/responsive-web-design/#basic-css
- MDN Web Docs - Comprehensive documentation on CSS, including CSS Grid and Subgrid: developer.mozilla.org/pt-BR/docs/Web/CSS
- W3Schools - Tutorials and references on CSS, covering basics to advanced topics like CSS Grid: www.w3schools.com/css/
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 11 meses atrás
há 10 meses atrás