Helyes margókkal rendelkező CSS csempe
Készítsünk egy valóban problémamentesen működő csempét margókkal. Tegyük fel, hogy eredetileg van egy ilyen margók nélküli csempénk:
<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;
}
:
Készítsünk vízszintes margókat az elemek között
a margin tulajdonsággal.
Ehhez állítsuk be minden gyermek elemre
a margin-right értékét 10px-re,
minden harmadik gyermek elemnél pedig állítsuk vissza nullára ezt a margin-ot.
Használjuk ehhez a nth-child pszeudoosztályt,
olyan paraméterrel, amely minden harmadik elemet kiválasztja.
Növeljük meg a szülő szélességét is 320px-re,
hogy helyet adjunk a margóknak, és nézzük meg,
mit kapunk:
<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;
}
:
Tehát minden működik. Távolítsuk el az utolsó elemet, hogy az utolsó sorban kevesebb elem legyen, és győződjünk meg róla, hogy ezzel nincs problénánk az utolsó sorban:
<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;
}
:
Készítsen egy csempét, ahol soronként két elem van,
20px távolsággal az elemek között.