A flex elem mérete a főtengely mentén
A width és a height tulajdonságok
a flex elem szélességét és magasságát határozzák meg
függetlenül a tengelyek irányától. Azaz, ha a tengely vízszintes,
akkor a width a szélességet határozza meg, de
ha a tengely függőleges, akkor a width továbbra is
a szélességet határozza meg. Néha ez a viselkedés
nem kényelmes.
A flex modellben létezik egy speciális tulajdonság,
a flex-basis, amely az elem méretét határozza meg
a főtengely mentén. Ez azt jelenti, hogy
ha a főtengely vízszintes - ez a tulajdonság
az elemek szélességét határozza meg, ha pedig függőleges
- akkor a magasságát. Ezt a tulajdonságot maguknak
a flex elemeknek kell megadni, nem a szülőjüknek. Nézzük
példákon.
Tegyük fel, hogy a főtengely most vízszintes, és
a flex-basis értéke 50px.
Ebben az esetben az elemek szélessége
50px lesz:
<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; /* tengely vízszintes */
width: 300px;
height: 300px;
border: 1px solid red;
}
.child {
flex-basis: 50px; /* elem mérete */
border: 1px solid green;
}
:
Most fordítsuk meg a tengelyt anélkül, hogy megváltoztatnánk
a flex-basis tulajdonság értékét. Ebben az esetben
már az elemek magassága lesz 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; /* tengely függőleges */
width: 300px;
height: 300px;
border: 1px solid red;
}
.child {
flex-basis: 50px;
border: 1px solid green;
}
:
Készítsen 5 flex elemet. Adjon meg nekik
100px szélességet a főtengely mentén.
Figyelje meg az elemek viselkedését
különböző tengelyek mentén.
Ha a tengely vízszintes és az elemnek meg van adva a
flex-basis tulajdonság és egyszerre a
width tulajdonság is, akkor a flex-basis
lesz elsődleges. Ellenőrizze ezt.
Ha a tengely függőleges és az elemnek meg van adva a
flex-basis tulajdonság és egyszerre a
height tulajdonság is, akkor a flex-basis
lesz elsődleges. Ellenőrizze ezt.