Problemy kafelkowania na flexach w CSS
Pierwszy problem kafelkowania w sumie jest oczywisty od razu
- bardzo niewygodne jest to, że rodzic musi
jawnie ustawiać wysokość. W końcu całkiem możliwe,
że liczba bloków będzie zmieniać się
dynamicznie i ich liczba będzie raz mniejsza,
raz większa niż 9.
A drugi problem powstanie, jeśli liczba bloków jest taka, że w ostatnim rzędzie będzie niewystarczająca liczba bloków. W tym przypadku ostatni rząd będzie wyglądać okropnie:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
<div class="child">4</div>
<div class="child">5</div>
<div class="child">6</div>
<div class="child">7</div>
<div class="child">8</div>
</div>
.parent {
display: flex;
flex-direction: row;
justify-content: space-between;
flex-wrap: wrap;
width: 320px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
border: 1px solid green;
}
:
Okazuje się, że nawet w poziomie wartość
space-between działa słabo w naszym
przypadku.
Podsumowując: jeśli liczba twoich potomków
jest zawsze stała i normalnie mieści się w
rodzicu, to kafelkowanie na space-between
jest dość wygodną rzeczą. W przeciwnym razie
trzeba będzie wymyślić coś innego.
Dane są 12 elementów. Zrób z nich
kafelkowanie po 4 elementy w rzędzie z szerokością
każdego elementu równą 100px i odległością
między nimi równą 20px.
Dane są 12 elementów. Zrób z nich
kafelkowanie po 3 elementy w rzędzie z szerokością
każdego elementu równą 150px i odległością
między nimi równą 10px.