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

:

Всичко работи чудесно, но има някои проблеми, които ще разгледаме в следващия урок.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне