CSS-də düzgün boşluqlu plitə düzəni

Gəlin həqiqətən problemsiz işləyən, margin-lər üzərində boşluqları olan bir plitə düzəni edək. Fərz edək ki, əvvəlcə boşluqsuz belə bir plitəmiz var:

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

Результат:

Gəlin elementlər arasında üfüqi boşluqları margin ilə edək.

Bunun üçün bütün child elementlərinə margin-right dəyərini 10px təyin edək, hər üçüncü child üçün isə bu margin-i sıfırlayaq. Bunun üçün nth-child psedoklassından istifadə edək, ona hər üçüncü elementi seçəcək parametri verək.

Boşluqlar üçün yer açmaq üçün valideynin enini də 320px-ə qədər artıraq və nəticəyə baxaq:

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

Результат:

Beləliklə, hər şey işləyir. Gəlin son sətirdə daha az element olduğunu yoxlamaq üçün son elementi çıxaraq və bu son sətirdə problem olmadığına əmin olaq:

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

Elementlər arasında 20px məsafə olan, hər sətirdə iki elementli bir plitə düzəni edin.