Pravilna ploščica z zamiki v CSS
Naredimo resnično delujočo ploščico z zamiki na marginah brez težav. Recimo, da imamo na začetku takšno ploščico brez zamikov:
<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;
}
:
Naredimo vodoravne zamike med
elementi z uporabo margin.
Za to nastavimo vsem podrejenim elementom
margin-right na vrednost 10px,
vsakemu tretjemu podrejenemu elementu pa nastavimo ta margin na nič.
Uporabimo pseudo-class nth-child,
kjer nastavimo parameter tako, da izberemo
vsak tretji element.
Povečajmo tudi širino starša na 320px,
da naredimo prostor za zamike, in poglejmo,
kaj dobimo:
<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: 320px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
margin-right: 10px;
border: 1px solid green;
}
.child:nth-child(3n) {
margin-right: 0;
}
:
Torej, vse deluje. Odstranimo zadnji element, da bo v zadnji vrstici manj elementov, in se prepričajmo, da pri tem ne bomo imeli težav z zadnjo vrstico:
<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-wrap: wrap;
width: 320px;
border: 1px solid red;
}
.child {
box-sizing: border-box;
width: 100px;
height: 100px;
margin-right: 10px;
border: 1px solid green;
}
.child:nth-child(3n) {
margin-right: 0;
}
:
Naredite ploščico z dvema elementoma v vrsti z
razmikom med elementoma 20px.