Junior
flex-grow жана flex-shrink мүнөздөмөлөрү кандай иштейт?
sobes.tech AI
AIден жооп
flex-grow жана flex-shrink flex элементтердин ичиндеги бош орунду бөлүштүрүү жолун көзөмөлдөйт.
flex-grow:
- Flex контейнердеги жеткиликтүү бош орундун кайсы бөлүгүн элемент ээлейт, эгер бош орун болсо.
- Даярдалган мааниси
flex-grow: 0, бул элемент өсбөйт дегенди билдирет. - Мааниси - нөлдөн чоң эмес сан.
- Эгер бир нече элементтин
flex-growмааниси 0дон чоң болсо, бош орун алардынflex-growмаанилерине пропорционал бөлүштүрүлөт.
flex-shrink:
- Элемент канчалык кыскаса, ал канчалык кыскарат, эгер жеткиликтүү орун flex контейнерде бардык элементтердин негизги өлчөмдөрүнүн жыйындысынан аз болсо.
- Даярдалган мааниси
flex-shrink: 1, бул элемент кыскашы мүмкүн дегенди билдирет. - Мааниси - нөлдөн чоң эмес сан.
flex-shrinkмааниси чоңураак болсо, ал башка кичирээк маанилерге салыштырмалуу көбүрөөк кыскарат.- Кыскарда, элементтин негизги кеңдиги (
flex-basisжеwidth) эске алынат.
Мисал:
.контейнер {
display: flex;
width: 500px;
/* Контейнердин жалпы кеңдиги */
}
.элемент {
flex-basis: 100px;
/* Ар бир элементтин негизги кеңдиги */
}
.элемент:nth-child(1) {
flex-grow: 1;
flex-shrink: 1; /* Даярдалган маанилер */
}
.элемент:nth-child(2) {
flex-grow: 2;
flex-shrink: 0; /* Кыскабайт */
}
.элемент:nth-child(3) {
flex-grow: 0; /* Өсбөйт */
flex-shrink: 2; /* Көбүрөөк кыскарат */
}
Эгер негизги кеңдиктердин жыйындысы (300px) контейнердин кеңдигинен (500px) аз болсо, калган орун (200px) биринчи жана экинчи элементтер арасында flex-grow 1:2 катышында бөлүштүрүлөт.
Эгер негизги кеңдиктердин жыйындысы контейнердин кеңдигинен көп болсо, элементтер flex-shrink маанилери жана алардын негизги өлчөмдөрү боюнча кыскарат. flex-shrink: 0 болгон элемент кыскабайт.