Tegelwerk met correcte marges in CSS
Laten we een tegelwerk maken dat echt probleemloos werkt met marges. Stel dat we initieel zo'n tegelwerk hebben zonder marges:
<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;
}
:
Laten we horizontale marges tussen
de elementen maken met behulp van margin.
Laten we daarvoor voor alle child-elementen
margin-right instellen op 10px,
en voor elke derde child deze margin op nul zetten.
We gebruiken daarvoor de pseudo-klasse nth-child,
en geven daarin een parameter op, zodat we
elk derde element selecteren.
Laten we ook de breedte van de parent vergroten naar 320px,
om ruimte te maken voor de marges, en kijken
wat we krijgen:
<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;
}
:
Dus, het werkt. Laten we het laatste element verwijderen, zodat er in de laatste rij minder elementen zijn en controleren of we geen problemen hebben met deze laatste rij:
<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;
}
:
Maak een tegelwerk met twee elementen per rij met
een afstand tussen de elementen van 20px.