Placarea cu spații corecte în CSS
Să creăm o placare care funcționează cu adevărat fără probleme cu spații realizate cu margin. Să presupunem că inițial avem o astfel de placare fără spații:
<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;
}
:
Să facem spații orizontale între
elemente folosind margin.
Pentru aceasta, să setăm pentru toate elementele-copil
margin-right la valoarea 10px,
iar pentru fiecare al treilea copil să resetăm acest margin.
Vom folosi pseudoclasa nth-child,
setând parametrul astfel încât să selectăm
fiecare al treilea element.
De asemenea, să mărim lățimea părintelui la 320px,
pentru a face loc pentru spații, și să vedem
ce obținem:
<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;
}
:
Deci, totul funcționează. Să eliminăm ultimul element, astfel încât în ultimul rând să fie mai puține elemente și să ne asigurăm că nu vom avea probleme cu acest ultim rând:
<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;
}
:
Realizați o placare cu câte două elemente pe rând cu
distanța dintre elemente de 20px.