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