CSS-ի ֆլեքսների վրա սալիկապատում

Եկեք հիմա սովորենք, թե ինչպես ստեղծել սալիկապատում ֆլեքսբոքսերի վրա: Սկզբում տեղադրենք ֆլեքս-բլոկները մի քանի շարքով, յուրաքանչյուր շարքում երեք բլոկ:

Դրա համար ֆլեքսների ծնողին սահմանենք լայնություն 300px և flex-wrap արժեքով wrap, իսկ ժառանգներին՝ լայնություն 100px:

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

Результат:

Եկեք հիմա ստեղծենք հեռավորություն մեր բլոկների միջև հորիզոնական: Դրա համար մեծացնենք ծնողի լայնությունը՝ լրացուցիչ տարածք տրամադրելու համար բացատների համար:

Քանի որ մենք ունենք երեք բլոկ մի շարքում, ստացվում է, որ նրանց միջև կա երկու բաց: Ենթադրենք, մենք ցանկանում ենք, որ յուրաքանչյուր բաց ունենա լայնություն 10px: Ստացվում է, որ ծնողի լայնությունը պետք է մեծացնել 20px-ով, այսինքն՝ դարձնել ոչ 300px, այլ 320px:

Եկեք հիմա ծնող բլոկներին նշանակենք justify-content space-between արժեքով և ստացենք ցանկալի հեռավորությունը բլոկների միջև:

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;
  justify-content: space-between;
  width: 320px;
  border: 1px solid red;
}
.child {
  box-sizing: border-box;
  width: 100px;
  height: 100px;
  border: 1px solid green;
}

Результат:

Եկեք հիմա ավելացնենք նույն հեռավորությունը բլոկների միջև նաև ուղղահայաց: Դրա համար կարելի է նշանակել align-content հատկությունը space-between արժեքով:

Սակայն դրա համար անհրաժեշտ է նշանակել ծնողի բարձրությունը, հակառակ դեպքում align-content-ը չի աշխատի: Եկեք սահմանենք բարձրությունը 320px: Այս դեպքում մեզ մոտ կտեղավորվի երեք շարք բլոկներ՝ 100px բարձրությամբ գումարած երկու բաց շարքերի միջև՝ 10px:

Եկեք գործարկենք.

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-direction: row;
  justify-content: space-between;
  align-content: space-between;
  flex-wrap: wrap;
  width: 320px;
  height: 320px;
  border: 1px solid red;
}
.child {
  box-sizing: border-box;
  width: 100px;
  height: 100px;
  border: 1px solid green;
}

Результат:

Ամեն ինչ հրաշալի աշխատում է, բայց կան որոշ խնդիրներ, որոնք մենք կդիտարկենք հաջորդ դասում: