Plytelių išdėstymas su tinkamais tarpais CSS
Sukurkime veikiantį plytelių išdėstymą su tarpais, naudojant margin. Tarkime, kad iš pradžių turime tokią plytelių išdėstymą be tarpų:
<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;
}
:
Sukurkime horizontalius tarpus tarp
elementų naudodami margin.
Kad tai padarytume, nustatykime visiems vaikiniams elementams
margin-right reikšmę 10px,
o kiekvienam trečiam vaikiniam elementui atstatykime šį margin į nulį.
Naudokime tam pseudoklasę nth-child,
nustatydami parametrą taip, kad pasirinktume
kiekvieną trečią elementą.
Taip pat padidinkime tėvinio elemento plotį iki 320px,
kad būtų vietos tarpams, ir pažiūrėkime,
ką gausime:
<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;
}
:
Taigi, viskas veikia. Pašalinkime paskutinį elementą, kad paskutinėje eilutėje būtų mažiau elementų ir įsitikinkime, kad tuo pačiu mes neturėsime problemų su šia paskutine eilute:
<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;
}
:
Sukurkite plytelių išdėstymą po du elementus eilutėje su
atstumu tarp elementų 20px.