Para este sétimo exemplo, combine alguns dos conceitos que você já aprendeu para criar um layout responsivo com filhos flexíveis e posicionados automaticamente. Muito legal. Os termos-chave a serem lembrados aqui são repeat
, auto-(fit|fill)
e minmax()
. Como você se lembra da sigla RAM,
O resultado é este:
.parent {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
Você está usando repeat()
novamente, mas, desta vez, usando a palavra-chave auto-fit
em vez de um valor numérico explícito. Isso permite o posicionamento automático desses elementos filhos. Esses filhos têm um valor mínimo básico de 150px
, com um valor máximo de 1fr
. Isso significa que, em telas menores, eles ocuparão toda a largura de 1fr
e, à medida que atingirem 150px
de largura cada, começarão a fluir para a mesma linha.
Com auto-fit
, todas as faixas completamente vazias serão recolhidas para 0
, e as faixas preenchidas preencherão o espaço. No entanto, se você mudar para auto-fill
, as faixas vazias vão ocupar a mesma quantidade de espaço que teriam se preenchidas:
.parent {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
HTML
<div class="parent white">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
CSS
.parent {
display: grid;
grid-gap: 1rem;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}