Плочка со коректни маргини во CSS

Ајде да направиме вистинска плочка што работи без проблеми со маргини користејќи margin. Да претпоставиме дека првично имаме ваква плочка без маргини:

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.