Dlaždice so správnymi odstupmi v CSS
Vytvorme dlaždicu s odstupmi na margin, ktorá naozaj funguje bez problémov. Povedzme, že na začiatku máme takúto dlaždicu bez odstupov:
<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;
}
:
Vytvorme horizontálne medzery medzi
prvkami pomocou margin.
Nastavme preto všetkým potomkom
margin-right na hodnotu 10px,
a každému tretiemu potomkovi tento margin vynulujeme.
Použime na to pseudotriedu nth-child,
nastavením parametra tak, aby vybrala
každý tretí prvok.
Zväčšime tiež šírku rodiča na 320px,
aby sme urobili miesto pre odsadenia, a pozrime sa,
čo nám vznikne:
<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;
}
:
Takže, všetko funguje. Odstráňme posledný prvok, aby v poslednom riadku bolo menej prvkov a presvedčme sa, že nám kvôli tomu nevzniknú problémy v poslednom riadku:
<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;
}
:
Vytvorte dlaždicu s dvoma prvkami v rade s
medzerou medzi prvkami 20px.