Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Resolução] + duvida

.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 5px;
}

.grid-item {
  font-family: 'Nunito', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 22px;
  letter-spacing: 0em;
  text-align: center;
  vertical-align: middle;
  color: white;
  background: #041833;
  border-radius: 0.5rem;
  padding: 0.5rem;
}

.item1 {
  grid-area: 1/1/2/2;
}

.item2 {
  grid-area: 1/2/2/3;
}

.item3 {
  background: #84EEC1;
  color: #041833;
  grid-area: 1/3/3/4;
}

.item4 {
 grid-area: 2/1/3/3;
}

.item5 {
  grid-area: 3/1/4/3;
}

.item6 {
  grid-area: 3/3/4/4;
}

Grid-area funciona ao usar "auto" no lugar de algum valor? nos testes que fiz nao funcionou. exemplo:

.item6 {
  grid-area: 3/3/auto/4;
}
2 respostas
solução!

Olá, Raphael, tudo bem?

Vamos à sua dúvida. Essa questão é bem relevante, e pode causar confusão, mas vou tentar explicar para ti isso.

A propriedade grid-area é usada para especificar em qual área da grade (grid) um elemento deve ser colocado. Ela normalmente aceita quatro valores, que representam as linhas e colunas onde o elemento será posicionado. Por exemplo:

.item6 {
  grid-area: 3/3/4/4;
}

Nesse código, estamos dizendo que o elemento com a classe .item6 deve ocupar as linhas 3 e 4 nas colunas 3 e 4 da grade. Isso criará uma célula 1x1 na grade.

Agora, quanto ao uso de "auto", ele é geralmente aplicado em uma ou mais partes da declaração grid-template-rows ou grid-template-columns para permitir que o navegador calcule automaticamente o tamanho da linha ou coluna com base no conteúdo. No entanto, ele não é comumente usado na propriedade grid-area.

Se você tentar usar "auto" em uma declaração grid-area, como no exemplo que você mencionou:

.item6 {
  grid-area: 3/3/auto/4;
}

Isso pode não funcionar conforme o esperado porque o "auto" aqui não está sendo interpretado corretamente. A propriedade grid-area espera valores específicos para indicar as linhas e colunas da grade onde o elemento deve ser colocado. Usar "auto" nesse contexto não faz sentido, e o comportamento pode ser indefinido, dependendo do navegador.

Se você deseja que um elemento ocupe automaticamente o espaço disponível em uma ou mais dimensões da grade, é melhor fazer isso ajustando as propriedades grid-template-rows ou grid-template-columns diretamente. Por exemplo, você pode definir uma coluna para ter um tamanho automático assim:

.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr auto; /* A terceira coluna terá tamanho automático */
  gap: 5px;
}

Isso fará com que a terceira coluna da sua grade tenha tamanho automático, ou seja, ela se ajustará automaticamente para preencher o espaço restante na grade, após as duas primeiras colunas terem ocupado seu espaço.

No geral, a propriedade grid-area é melhor utilizada com valores específicos de linha e coluna. Se você deseja que um elemento ocupe automaticamente espaço em uma direção específica, é mais apropriado ajustar as propriedades grid-template-rows ou grid-template-columns para alcançar o resultado desejado.

Espero que esta explicação tenha esclarecido sua dúvida.

Se você tiver mais perguntas ou precisar de mais detalhes, sinta-se à vontade para perguntar.

Espero que tenha te ajudado, abraços, e bons estudos!

Caso este post tenha lhe ajudado, por favor marque ele como solução! ✓

Que explicação sensacional, estava apenas olhando para tentar ajudar e acabei tirando uma dúvida legal.