Плітачка з карэктнымі водступамі ў CSS

Давайце зробім сапраўды працуючую без праблем плітачку з водступамі на марджынах. Хай у нас першапачаткова ёсць такая плітачка без водступаў:

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;
}

Результат:

Давайце зробім гарызантальныя водступы паміж элементамі з дапамогай margin.

Паставім для гэтага ўсім элементам-патомкам margin-right у значэнне 10px, а кожнаму трэцяму патомку занулім гэты margin. Выкажам для гэтага псеўдаклас nth-child, задаўшы ў ім параметр так, каб атрымліваць кожны трэці элемент.

Павялічым таксама шырыню бацькі да 320px, каб даць месца пад водступы, і паглядзім, што ў нас атрымліваецца:

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;
}

Результат:

Такім чынам, усё працуе. Давайце знімем апошні элемент, каб у апошнім шэрагу было менш элементаў і пераканаемся, што пры гэтым у нас не будзе праблем з гэтым апошнім шэрагам:

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

Зрабіце плітачку па два элемента ў шэраг з адлегласцю паміж элементамі ў 20px.