Główne logo strony
CSS

Responsywny grid w jednej linijce CSS


Dzisiaj dowiemy się, jak łatwo stworzyć responsywną siatkę CSS za pomocą CSS Grid. Mamy 100 elementów div i chcemy, aby nasza siatka była responsywna w zależności od szerokości ekranu.

Możemy osiągnąć to w prosty sposób, korzystając z grid-template-columns, repeat, autofill i autofit. Zamiast pisać wiele zapytań @media, możemy to zrobić za pomocą jednej linii CSS.

.container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

Powyższy kod definiuje siatkę, która automatycznie wypełnia dostępną przestrzeń. Używając repeat(auto-fill, minmax(200px, 1fr)), mówimy, że chcemy, aby każda kolumna miała minimalną szerokość 200px i maksymalnie zajmowała jedną jednostkę frakcyjną. Jeśli jest więcej miejsca, doda więcej kolumn.

Różnica między autofill i autofit

Aby lepiej zrozumieć różnicę między autofill i autofit, przyjrzyjmy się następującemu przykładowi:

.fill-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.fit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

W przypadku auto-fill, kolumny będą dodawane w zależności od dostępnej przestrzeni, ale nie będą rozciągane, jeśli nie ma wystarczającej liczby elementów.

W przypadku auto-fit, kolumny będą rozciągane, aby wypełnić całą dostępną przestrzeń, nawet jeśli liczba elementów jest mniejsza.

Inspiracja: Responsive CSS Grid Layout In One Line Of Code

Losowy shortKolejny short: CSS