O que é CSS Grid e como ele difere do Flexbox?

CSS Grid é um sistema de layout poderoso que permite aos desenvolvedores web criar layouts de páginas web complexos e responsivos com facilidade. Imagine que você está organizando móveis em um cômodo – o CSS Grid é como ter uma grade invisível no seu chão que ajuda você a posicionar tudo exatamente onde deseja. Quando construímos sites, frequentemente precisamos organizar diferentes elementos na página. Antes do CSS Grid, isso às vezes era complicado, especialmente para layouts complexos. O CSS Grid simplifica esse processo dividindo sua página web em linhas e colunas, criando uma estrutura semelhante a uma grade. Vamos imaginar que você está trabalhando com um container div com vários itens aninhados dentro assim:
<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>
Se você quiser estilizar esses elementos em um formato de grade, pode definir o display como grid e aplicar colunas assim:
<link rel="stylesheet" href="styles.css">
<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: 1fr 1fr 1fr;
  grid-gap: 20px;
}

.item {
  background-color: lightgray;
  padding: 20px;
  text-align: center;
  border: 1px solid #ccc;
}
Neste código, estamos dizendo ao navegador para criar uma grade com três colunas de largura igual, isso é o que 1fr 1fr 1fr significa, e estamos adicionando um espaçamento de 20 pixels entre cada item da grade. Agora, você pode estar se perguntando: "E o Flexbox? Isso não é usado também para layouts? Você está certo! Flexbox é outro modelo de layout CSS e também é bastante útil. Mas há algumas diferenças principais. Flexbox é unidimensional, enquanto Grid é bidimensional. Isso significa que o Flexbox funciona muito bem para organizar elementos em uma única linha ou coluna, enquanto o Grid é excelente para criar layouts com linhas e colunas. Flexbox é orientado ao conteúdo, o que significa que ele ajusta o layout com base no conteúdo. Grid, por outro lado, é layout-first, permitindo que você crie o layout e depois coloque os itens nele. Grid oferece um controle mais preciso sobre o posicionamento. Você pode informar a um item exatamente qual linha e coluna ele deve ocupar. Aqui está um exemplo de Flexbox para comparação:
<link rel="stylesheet" href="styles.css">
<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: flex;
  justify-content: space-between;
}
Isso cria um contêiner flex onde os itens são espaçados uniformemente ao longo do eixo principal. Tanto Grid quanto Flexbox têm seus pontos fortes e, frequentemente, os melhores layouts usam uma combinação de ambos. Você pode usar Grid para o layout geral da página e depois usar Flexbox para alinhar os itens dentro de cada área do grid. Em resumo, CSS Grid é uma ferramenta poderosa que permite layouts bidimensionais precisos. Embora possa parecer complexo no início, com a prática, torna-se uma ferramenta inestimável para criar layouts web responsivos e complexos.
Este módulo não possui perguntas. Marque como concluído.