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.