Grid layout responsivo


A propriedade grid-template-columns é utilizado para definir o layout das colunas em um contêiner grid. Ao utilizar a expressão repeat(auto-fill, minmax(...)), é possível criar um layout responsivo que se ajusta dinamicamente ao tamanho da tela.

A expressão repeat(auto-fill, minmax(320px, 1fr)), por exemplo, consiste em duas etapas para garantir a responsividade nesse tipo de layout:

  • repeat(auto-fill, ...) indica que as colunas serão repetidas automaticamente para preencher o contêiner.

  • minmax(320px, 1fr) define a faixa de tamanhos das colunas. Cada coluna terá no mínimo 320 pixels de largura (minmax(320px, ...)) e, no máximo, ocupará todo o espaço disponível (1fr).

Exemplo:

Considere o seguinte exemplo:

.container {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	grid-gap: 20px; /* Espaçamento entre as colunas */
}
 
.item {
	width: 100%;
	height: 200px;
	background-color: #3498db;
	color: #fff;
	text-align: center;
	line-height: 150px;
}
<div class="container">
  <div class="item" style="background: red;">Item 1</div>
  <div class="item" style="background: blue;">Item 2</div>
  <div class="item" style="background: green;">Item 3</div>
  <div class="item" style="background: gray;">Item 4</div>
</div>

Neste exemplo, o contêiner de grid se ajustará automaticamente ao tamanho da tela. As colunas terão, no mínimo, 320 pixels e se expandirão conforme o espaço disponível, mantendo um espaçamento de 20 pixels entre elas.

Referências