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 сўзланувчи синфини қўллаймиз, унда параметрни ҳар учинчи элементни олиш учун берамиз.

Чўзиқлар учун жой берish учун ота-онанинг энини 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 бўлган плиточка ясангиз.