Explorando o Subgrid: Avance Seus Layouts com CSS Grid
Domine o CSS Grid: Crie Layouts Incríveis com Facilidade
O CSSO 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. Grid é um poderoso sistema de layout que permite criar estruturas bidimensionais (linhas e colunas) de forma simples e organizada. Ao contrário de outras técnicas de layout, como float ou Flexbox
Fundamentos do Flexbox: display: flex, flex-direction, flex-wrapDescubra como o Flexbox revoluciona seus layouts com display flex, flex-direction e flex-wrap. Aprenda a criar designs responsivos e organizados., o Grid foi desenhado especificamente para solucionar desafios de organização 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 linhas e colunas, otimizando a criação de layouts mais complexos.
Neste tutorial, vamos explorar os princípios básicos do CSS Grid, entendendo como funciona a propriedadeClasses 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.
display: grid
e como definir colunas e linhas com grid-template
e Criando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança.-columns
grid-template
.Criando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança.-rows
O que é display: grid?🔗
Para começar a criar um layout com Grid, precisamos informar ao navegador que o elementoTags 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. será um grid container. Isso é feito definindo a 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.
display
como grid
. Assim, todos os elementosTags 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. filhos desse container tornam-se grid items, passando a respeitar as configurações de linhas e colunas que você especificar posteriormente.
Exemplo básico de uso do display: grid:
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
</div>
.container {
display: grid; /* Torna o container um grid */
background-color: #f2f2f2; /* Exemplo de estilo */
}
.item {
background-color: #ffcc00;
border: 1px solid #999;
padding: 10px;
text-align: center;
}
Sem nenhuma configuração adicional, o Grid organizará automaticamente os itens. Porém, só veremos o verdadeiro poder dessa técnica ao definirmos o tamanho das colunas e/ou linhas.
Definindo colunas: grid-template-columns🔗
Para criar colunas, utilizamos grid-template
. É possível definir o tamanho das colunas de diversas maneiras, como em Criando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança.-columns
px
, %
ou utilizando unidades fracionais (fr
). Cada valor corresponde a uma coluna.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.
Por exemplo, se quisermos 3 colunas, sendo:
1. A primeira com larguraSeletores 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. fixa de
200px
2. A segunda ajustando-se de forma flexível com 1fr
3. A terceira também flexível com 1fr
Podemos fazer assim:
.container {
display: grid;
grid-template-columns: 200px 1fr 1fr;
}
Dessa forma, o navegador:
- Reserva
200px
para a primeira coluna. - Divide o espaço restante igualmente entre as colunas definidas com
1fr
.
Exemplo prático
<div class="container">
<div class="item">Col 1</div>
<div class="item">Col 2</div>
<div class="item">Col 3</div>
</div>
.container {
display: grid;
grid-template-columns: 200px 1fr 1fr;
gap: 10px; /* Espaçamento entre colunas (e linhas também, se houver) */
margin: 0 auto;
max-width: 800px;
}
.item {
background-color: #ffcc00;
border: 1px solid #999;
padding: 10px;
text-align: center;
}
Dica: O uso de fr
(frações) para criar colunas flexíveis é muito comum, pois facilita a criação de layouts responsivos e bem ajustados.
Definindo linhas: grid-template-rows🔗
Assim como definimos colunas, podemos definir linhas usando grid-template
. A sintaxe é bem similar aos valores de Criando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança.-rows
grid-template
.Criando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança.-columns
Se quisermos duas linhas com alturas de 150px
cada, podemos fazer:
.container {
display: grid;
grid-template-columns: 1fr 1fr; /* Duas colunas para exemplo */
grid-template-rows: 150px 150px;
}
Nesse caso, nosso container terá:
- 2 colunas (1fr para cada, totalizando 2 frações
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. horizontais).
- 2 linhas (cada uma com 150px de altura
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. fixa).
Exemplo prático
<div class="container">
<div class="item">C1 L1</div>
<div class="item">C2 L1</div>
<div class="item">C1 L2</div>
<div class="item">C2 L2</div>
</div>
.container {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 150px 150px;
gap: 10px;
max-width: 600px;
margin: 0 auto;
}
.item {
background-color: #ffcc00;
border: 1px solid #999;
padding: 10px;
text-align: center;
}
Observação: Se você tiver mais itens do que as células definidas, eles serão organizados automaticamente em novas linhas (sem altura definida), a menos que sejam especificadas regras adicionais.
Exemplo unindo colunas e linhas🔗
Para ver o Grid em ação de forma mais clara, podemos criar um container com 3 colunas e 2 linhas, mesclando valores em pixels e frGrid 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.. Observe o pequeno exemplo abaixo:
<div class="container">
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
<div class="item">Item 6</div>
</div>
.container {
display: grid;
grid-template-columns: 150px 1fr 2fr;
grid-template-rows: 100px 100px;
gap: 10px;
max-width: 1000px;
margin: 0 auto;
}
.item {
background-color: #ffcc00;
border: 1px solid #999;
padding: 10px;
font-weight: bold;
display: flex; /* Apenas para centralizar o texto */
justify-content: center;
align-items: center;
}
Nesta configuração:
- A primeira coluna tem
150px
de larguraSeletores 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. fixa.
- A segunda usa
1fr
, e a terceira2fr
, fazendo com que o espaço restante seja dividido em 3 partes, onde a segunda coluna recebe 1 parte, e a terceira coluna recebe 2 partes. - Cada linha tem
100px
de alturaSeletores 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. fixa.
- Criamos 6 células, pois há 3 colunas × 2 linhas.
Conclusão🔗
A introdução ao Grid abre um mundo de possibilidades para criar layouts mais complexos, organizados e responsivosResponsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade. de forma intuitiva. Definir
display: grid
e configurar colunas e linhas com grid-template
e Criando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança.-columns
grid-template
é o ponto de partida para dominar esse recurso poderoso do CSSCriando e Gerenciando Templates DinâmicosAprenda a utilizar templates dinâmicos para criar interfaces web eficientes. Descubra técnicas com JavaScript puro integrando boas práticas e segurança.-rows
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..
Nos próximos passos de estudos, você poderá explorar outras propriedades importantes - como alinhamento, espaçamento, áreas de grid e técnicas para tornar o layout ainda mais dinâmico e personalizável. Por ora, pratique o uso dessas propriedadesClasses 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. básicas para construir uma base sólida de conhecimento 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. Grid.
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: devdocs.io/css/
- FreeCodeCamp: www.freecodecamp.org/learn/responsive-web-design/#basic-css
- MDN Web Docs: developer.mozilla.org/pt-BR/docs/Web/CSS
- W3Schools: www.w3schools.com/css/