Величина флекс елемента дуж главне осе
Својства width и height задају
ширину и висину флекс елемента независно
од правца оса. То јест, ако је оса хоризонтална,
онда width ће задавати ширину, али
ако је оса вертикална, онда width ће и даље
задавати ширину. Понекад такво понашање
није погодно.
У флекс моделу постоји посебно својство
flex-basis, које задаје величину
елемента дуж главне осе. То значи да
ако је главна оса хоризонтална - ово својство
ће задавати ширину елемената, а ако је вертикална
- онда висину. Ово својство треба задати
самим flex елементима, а не њиховом родитељу. Хајде
да погледамо на примерима.
Нека је сада главна оса хоризонтална, а
flex-basis има вредност 50px.
У том случају ширина елемената
ће бити 50px:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>
.parent {
display: flex;
flex-direction: row; /* оса хоризонтална */
width: 300px;
height: 300px;
border: 1px solid red;
}
.child {
flex-basis: 50px; /* величина елемента */
border: 1px solid green;
}
:
Хајде сада да окренемо осу, не мењајући вредност
својства flex-basis. У том случају
ће већ висина елемената бити 50px:
<div class="parent">
<div class="child">1</div>
<div class="child">2</div>
<div class="child">3</div>
</div>
.parent {
display: flex;
flex-direction: column; /* оса вертикална */
width: 300px;
height: 300px;
border: 1px solid red;
}
.child {
flex-basis: 50px;
border: 1px solid green;
}
:
Направите 5 флекс-блокова. Задајте им
ширину дуж главне осе од 100px.
Погледајте понашање блокова
дуж различитих оса.
Ако је оса хоризонтална и блоку је задато својство
flex-basis и истовремено својство
width, онда flex-basis ће
имати приоритет. Проверите то.
Ако је оса вертикална и блоку је задато својство
flex-basis и истовремено својство
height, онда flex-basis ће
имати приоритет. Проверите то.