АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗mkSpFxFT 99 of 128 menu

Плітачка на флексах у CSS

Давайце зараз навучымся рабіць плітачку на флексбоксах. Для пачатку размясцім флекс-блокі у некалькі шэрагаў, па тры блок у шэраг.

Для гэтага бацьку флексаў усталюем шырыню ў 300px і flex-wrap у значэнні wrap, а нашчадкам шырыню ў 100px:

<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> .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 і атрымаем пажаданую адлегласць паміж блокамі:

<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> .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.

Давайце запусцім:

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

:

Усё працуе цудоўна, але ёсць некаторыя праблемы, якія мы разгледзім у наступным уроку.

byenru