Ploščice s flexboxi v CSS
Zdaj se naučimo delati ploščice s flexboxi. Za začetek postavimo flex-bloke v več vrstic, po trije bloki v vrsto.
Za to nastavimo starševskemu elementu flexov širino
na 300px in flex-wrap na vrednost
wrap, potomcem pa širino na 100px:
<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 class="child">9</div>
</div>
.parent {
display: flex;
flex-wrap: wrap;
width: 300px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
border: 1px solid green;
}
:
Zdaj naredimo razmik med našimi bloki vodoravno. Za to povečajmo širino starševskega elementa, da damo dodaten prostor za odmike.
Ker imamo tri bloke v vrsti, pomeni,
da sta med njima dva presledka. Recimo, da
želimo, da ima vsak presledek širino
10px. Izkazalo se bo, da je treba
širino starševskega elementa povečati za 20px, torej narediti
ne 300px, ampak 320px.
Zdaj nastavimo starševskemu elementu blokov justify-content
na vrednost space-between in dobimo
želeni razmik med bloki:
<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 class="child">9</div>
</div>
.parent {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 320px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
border: 1px solid green;
}
:
Zdaj dodajmo enak razmik
med bloki tudi navpično. Za to lahko
nastavimo lastnost align-content na vrednost
space-between.
Za to pa je treba nastaviti višino starševskemu elementu,
drugače align-content ne bo deloval.
Nastavimo višino na 320px.
V tem primeru se nam bo pravkar prileglo tri
vrste blokov po 100px višine plus
dva odmika med vrstami po 10px.
Zaženimo:
<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 class="child">9</div>
</div>
.parent {
display: flex;
flex-direction: row;
justify-content: space-between;
align-content: space-between;
flex-wrap: wrap;
width: 320px;
height: 320px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
border: 1px solid green;
}
:
Vse deluje čudovito, vendar so nekatere težave, ki jih bomo obravnavali v naslednji lekciji.