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ų:

html<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>
css.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:

html<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>
css.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:

html<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>
css.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;
}

Результат:

Задание 1

Sukurkite plytelių išdėstymą po du elementus eilutėje su atstumu tarp elementų 20px.