Junior
Kuidas toimivad flex-grow ja flex-shrink omadused?
sobes.tech AI
Vastus AI-lt
flex-grow ja flex-shrink määravad, kuidas flex-elemendid jagavad vaba ruumi flex-konteineris.
flex-grow:
- Määrab, kui suure osa vabast ruumist võtab element, kui see on olemas.
- Vaikimisi väärtus on
flex-grow: 0, mis tähendab, et element ei kasva. - Väärtus on mitte-negatiivne arv.
- Kui mitmel elemendil on
flex-growsuurem kui 0, jaguneb vaba ruum nende vahel proportsionaalselt nendeflex-growväärtuste järgi.
flex-shrink:
- Määrab, kui palju element kokku tõmbub, kui vaba ruumi flex-konteineris on vähem kui kõigi flex-elemendide põhimõõtude summa.
- Vaikimisi väärtus on
flex-shrink: 1, mis tähendab, et element võib kokku tõmbuda. - Väärtus on mitte-negatiivne arv.
- Mida suurem on
flex-shrinkväärtus, seda tugevamalt element kokku tõmbub võrreldes teiste väiksema väärtusega elementidega. - Tõmbumise ajal arvestatakse elemendi põhilaidet (
flex-basisvõiwidth).
Näide:
.container {
display: flex;
width: 500px;
/* Kontaineri kogulaius */
}
.item {
flex-basis: 100px;
/* Iga elemendi põhilaid */
}
.item:nth-child(1) {
flex-grow: 1;
flex-shrink: 1; /* Vaikimisi väärtused */
}
.item:nth-child(2) {
flex-grow: 2;
flex-shrink: 0; /* Ei tõmbu kokku */
}
.item:nth-child(3) {
flex-grow: 0; /* Ei kasva */
flex-shrink: 2; /* Tõmbub tugevamini kokku */
}
Kui põhilaidude summa (300px) on väiksem kui konteineri laius (500px), jaguneb ülejäänud ruum (200px) esimese ja teise elemendi vahel suhtega flex-grow 1:2.
Kui põhilaidude summa on suurem kui konteineri laius, tõmbuvad elemendid vastavalt nende flex-shrink väärtustele ja nende põhimõõtudele. Element, millel on flex-shrink: 0, ei tõmbu kokku.