Pobaw się poniższym kodem. Zwróć uwagę na zachowanie przy zmianie szerokości okna przeglądarki.
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kafelki</title>
<style>
#kontener {
width: 100%;
max-width: 900px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 10px;
box-sizing: border-box;
}
.kafelek {
border: 1px solid black;
box-sizing: border-box;
min-height: 100px;
}
</style>
</head>
<body>
<div id="kontener">
<div class="kafelek">1</div>
<div class="kafelek">2</div>
<div class="kafelek">3</div>
<div class="kafelek">4</div>
<div class="kafelek">5</div>
<div class="kafelek">6</div>
<div class="kafelek">7</div>
<div class="kafelek">8</div>
<div class="kafelek">9</div>
</div>
</body>
</html>Wyjaśnienie styli związanych z CSS Grid:
max-width: 900px— kontener ma maksymalnie 900 px szerokości.width: 100%— na mniejszych ekranach zajmuje całą dostępną szerokość.margin: 0 auto— wyśrodkowuje kontener.repeat(auto-fit, minmax(240px, 1fr))— tworzy tyle kolumn, ile zmieści się przy minimalnej szerokości 240 px na kafelek.gap: 10px— ustawia odstępy między kafelkami.box-sizing: border-box— uwzględnia obramowanie w wymiarach elementu.
Przetestuj inne warianty stylu grid-template-columns:
| Kod | Działanie |
| 200px 200px 200px; | Zawsze 3 kolumny po 200px |
| 1fr 1fr 1fr; | Zawsze 3 równe kolumny. |
| repeat(3, 1fr) | Zawsze 3 równe kolumny. |
| repeat(2, 1fr) | Zawsze 2 równe kolumny. |
| 200px 1fr | Pierwsza kolumna ma 200 px, druga zajmuje pozostałe miejsce. |
| 2fr 1fr | Dwie kolumny; pierwsza jest dwa razy szersza od drugiej. |
| repeat(3, minmax(240px, 1fr)) | Trzy kolumny, każda o minimalnej szerokości 240 px. |
Przetestuj działanie tych styli
Twój komentarz