Aprenda CSS Grid: Áreas Nomeadas e Espaçamento com gap

Neste tutorial, exploraremos como criar e organizar áreas dentro do Grid CSS usando a propriedadeClasses e Herança em ES6+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. grid-templateCriando e Gerenciando Templates DinâmicosCriando 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.-areas e como aplicar corretamente o espaçamento entre elementosTags e Elementos: Sintaxe e HierarquiaTags 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. por meio de gap. Vamos descobrir, de forma narrativa e simples, como essa técnica pode nos ajudar a ter um maior controle na hora de posicionar os elementosTags e Elementos: Sintaxe e HierarquiaTags 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 um layout, melhorando a legibilidade e a manutenção do código.

Conceitos Básicos🔗

O CSS GridIntrodução ao Grid: display: grid, grid-template-columns/rowsIntroduçã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. nos permite construir grades bidimensionais, oferecendo maior flexibilidade e clareza na hora de montar layouts. Uma das abordagens mais poderosas, porém simples de se compreender, é o uso de áreas nomeadas. Esse recurso reforça a organização e facilita a compreensão sobre onde cada elementoTags e Elementos: Sintaxe e HierarquiaTags 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. deve ficar, uma vez que nomeamos pedaços do grid em vez de contar colunas e linhas.

O que são áreas nomeadas?

Quando escrevemos o templateCriando e Gerenciando Templates DinâmicosCriando 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. de áreas, desenhamos um “mapa” textual do layout, definindo cada região com um nome que servirá como referência para posicionar os itens.

Definindo Áreas com grid-template-areas🔗

Para usar grid-templateCriando e Gerenciando Templates DinâmicosCriando 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.-areas, precisamos primeiro criar um container gridIntrodução ao Grid: display: grid, grid-template-columns/rowsIntroduçã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., definindo:

1. display: gridIntrodução ao Grid: display: grid, grid-template-columns/rowsIntroduçã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.; para ativar o Grid Layout;

2. Dimensões das colunas e linhas (por exemplo, grid-template-columnsIntrodução ao Grid: display: grid, grid-template-columns/rowsIntroduçã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. e grid-template-rowsIntrodução ao Grid: display: grid, grid-template-columns/rowsIntroduçã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.);

3. O mapa textual com grid-templateCriando e Gerenciando Templates DinâmicosCriando 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.-areas.

Um exemplo simples de um layout com três áreas: cabeçalhoFormatação de Texto: `<p>`, `<h1>-<h6>`, `<strong>`, `<em>`Formatação de Texto: `<p>`, `<h1>-<h6>`, `<strong>`, `<em>`Aprenda a formatar textos em HTML com tags de parágrafo, títulos e destaques, organizando seu conteúdo e garantindo semântica. (header), conteúdo principalTags Semânticas: `<header>`, `<nav>`, `<main>`, `<footer>`, `<article>`, `<section>`Tags Semânticas: `<header>`, `<nav>`, `<main>`, `<footer>`, `<article>`, `<section>`Descubra como as tags semânticas do HTML5 melhoram a organização, acessibilidade e manutenção do seu site, facilitando a leitura e SEO. (main) e rodapé (footer).

.container {
  display: grid;
  grid-template-columns: 1fr; /* 1 Fração, ocupando toda a largura */
  grid-template-rows: 60px 1fr 40px; /* Três linhas: cabeçalho, conteúdo e rodapé */
  grid-template-areas:
    "header"
    "main"
    "footer";
}

Repare como o valor de grid-templateCriando e Gerenciando Templates DinâmicosCriando 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.-areas é definido entre aspas, formando uma espécie de desenho de como o layout deve ficar. Esse modelo indica que cada linha do layout terá apenas uma área:

1. Primeira linha: "header"

2. Segunda linha: "main"

3. Terceira linha: "footer"

Associando cada elemento à sua área

Depois de definir o templateCriando e Gerenciando Templates DinâmicosCriando 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., precisamos dizer a cada item em qual área ele deve ficar, usando grid-area. Por exemplo:

.header {
  grid-area: header;
}
.main {
  grid-area: main;
}
.footer {
  grid-area: footer;
}

Assim, os elementosTags e Elementos: Sintaxe e HierarquiaTags 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. com as classes .header, .main e .footer se encaixarão nas posições correspondentes do “mapa” que definimos em grid-templateCriando e Gerenciando Templates DinâmicosCriando 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.-areas.

Organizando Layouts Mais Complexos🔗

Podemos criar layouts mais elaborados organizando áreas lado a lado ou em múltiplas linhas. Por exemplo, um layout com duas colunas – barra lateral (aside) e conteúdo principalTags Semânticas: `<header>`, `<nav>`, `<main>`, `<footer>`, `<article>`, `<section>`Tags Semânticas: `<header>`, `<nav>`, `<main>`, `<footer>`, `<article>`, `<section>`Descubra como as tags semânticas do HTML5 melhoram a organização, acessibilidade e manutenção do seu site, facilitando a leitura e SEO. (main) – e um cabeçalho no topo:

.container {
  display: grid;
  grid-template-columns: 200px 1fr;
  grid-template-rows: 60px 1fr;
  grid-template-areas:
    "header header"
    "aside main";
}

Neste caso, o cabeçalhoFormatação de Texto: `<p>`, `<h1>-<h6>`, `<strong>`, `<em>`Formatação de Texto: `<p>`, `<h1>-<h6>`, `<strong>`, `<em>`Aprenda a formatar textos em HTML com tags de parágrafo, títulos e destaques, organizando seu conteúdo e garantindo semântica. ocupa a larguraSeletores e Propriedades CSS EssenciaisSeletores 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. total da primeira linha ("header header"), enquanto a segunda linha se divide em duas áreas ("aside main"). Em seguida, cada elementoTags e Elementos: Sintaxe e HierarquiaTags 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. recebe sua área:

.header {
  grid-area: header;
}
.aside {
  grid-area: aside;
}
.main {
  grid-area: main;
}

gap para Espaçamento🔗

Uma das melhores maneiras de aprimorar a aparênciaRelação entre HTML e CSSRelação entre HTML e CSSDescubra como HTML e CSS trabalham juntos para criar páginas web esteticamente agradáveis e bem estruturadas, facilitando a manutenção e o desempenho. e a usabilidade de um layout em CSS GridIntrodução ao Grid: display: grid, grid-template-columns/rowsIntroduçã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. é adicionar espaçamento entre elementos. Para isso, utilizamos a propriedadeClasses e Herança em ES6+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.

  • gap: Define o espaçamento entre linhas e colunas do grid.

Podemos aplicar gap de duas formas:

1. gap: 20px; → Aplica 20px de espaço nas duas direções (horizontal e vertical).

2. column-gap e row-gap → Definem espaçamentos diferentes para colunas e linhas, respectivamente.

Exemplo Prático

.container {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  grid-template-rows: 100px 200px;
  grid-template-areas:
    "header header header"
    "aside main main";
  gap: 10px;
}

Vantagens e Boas Práticas🔗

1. Legibilidade: Nomear as áreas facilita a comunicação dentro da equipe e torna o código mais compreensível.

2. Manutenção: Caso o layout precise de ajustes ou reestruturação, basta alterar as áreas definidas em grid-templateCriando e Gerenciando Templates DinâmicosCriando 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.-areas sem mexer individualmente em cada item.

3. Espaçamento Inteligente: Utilize gap para separar elementosTags e Elementos: Sintaxe e HierarquiaTags 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., evitando margens repetidas em cada item do grid. Isso deixa o layout mais uniforme e limpo.

Exemplo Completo🔗

Abaixo, um pequeno exemplo integrando áreas e gap para ilustrar um layout de landing page simplificado:

<div class="container">
  <header class="header">Cabeçalho</header>
  <aside class="aside">Menu Lateral</aside>
  <main class="main">Conteúdo Principal</main>
  <footer class="footer">Rodapé</footer>
</div>
.container {
  display: grid;
  grid-template-columns: 200px 1fr;
  grid-template-rows: 60px 1fr 60px;
  grid-template-areas:
    "header  header"
    "aside   main"
    "footer  footer";
  gap: 15px;
}
.header {
  grid-area: header;
  background-color: #f8f8f8;
}
.aside {
  grid-area: aside;
  background-color: #ddd;
}
.main {
  grid-area: main;
  background-color: #eee;
}
.footer {
  grid-area: footer;
  background-color: #ccc;
}

Observe como cada nome de área do grid-templateCriando e Gerenciando Templates DinâmicosCriando 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.-areas combina com a propriedadeClasses e Herança em ES6+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. grid-area em cada classeAtributos HTML: `id`, `class`, `style`, `data-*`Atributos HTML: `id`, `class`, `style`, `data-*`Aprenda a aplicar atributos id, class, style e data-* no HTML para organizar, estilizar e dinamizar sua página com praticidade e eficiência.. Além disso, o gap: 15px; cria um espaçamento uniforme em todo o layout.

Conclusão🔗

O uso de áreas nomeadas com grid-templateCriando e Gerenciando Templates DinâmicosCriando 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.-areas e a aplicação de espaços com gap simplificam grandemente a criação de layouts organizados e fáceis de manter. Ao nomear regiões, você cria uma referência visual mais clara, facilitando a leitura e manutenção do código. Além disso, centralizar a responsabilidade do espaçamento via gap torna mais fluido o ajuste de margens entre os elementosTags e Elementos: Sintaxe e HierarquiaTags 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., mantendo o layout consistente.

Com esse conhecimento, você está pronto para estruturar projetos que exijam organização complexa, mas de forma intuitiva e reenquadrável com facilidade. Esse é o poder do CSS GridIntrodução ao Grid: display: grid, grid-template-columns/rowsIntroduçã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. alicerçado por áreas nomeadas e espaçamento (gap). Experimente criar seus próprios layouts e descubra como essa abordagem pode diminuir significativamente a complexidade do seu CSSO que é 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.!

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados