Sobes.tech
Junior

Flex-grow жана flex-shrink мүнөздөмөлөрү кандай иштейт?

sobes.tech AI

AIден жооп

flex-grow жана flex-shrink элементтердин, тиешелүү, flex контейнеринин ичинде ийкемдүү түрдө өлчөмүн ылайыкташтыруу жолун аныктайт, анткени бош орун бар болсо же жетишпесе.

flex-grow - контейнерде бош орун болсо, элементтин канчалык чоңоюшу керектигин аныктайт. Стандарттык мааниси 0 (элемент кеңейбейт). Эгер бир нече элементтин flex-grow мааниси 0дон чоң болсо, бош орун алардын ортосунда пропорционал бөлүштүрүлөт, алардын flex-grow маанилери боюнча:

.item {
  flex-grow: 1; /* Элемент жеткиликтүү бардык бош орунду пайдалана алат */
}

flex-shrink - жетишсиз орун болсо, элементтин канчалык кыскашу керектигин аныктайт. Стандарттык мааниси 1 (элемент башка кыскачу элементтер менен пропорционалдуу кыскарат). 0 мааниси элементтин кыскашуусун алдын алат:

.item {
  flex-shrink: 0; /* Элемент кыскабайт */
}

Булар flex-basis менен бирге, кыскача flex өзгөчөлүгүн түзөт: flex: <flex-grow> <flex-shrink> <flex-basis>.

Колдонуу мисалы:

<div class="container">
  <div class="item item-1">Item 1</div>
  <div class="item item-2">Item 2</div>
</div>
.container {
  display: flex;
  width: 400px; /* Туура өлчөмдүү контейнердин мисалы */
}

.item {
  flex-basis: 100px; /* Бардык элементтердин негизги өлчөмү */
}

.item-1 {
  flex-grow: 1; /* Item 1 бош орунду пайдалана алат */
}

.item-2 {
  flex-shrink: 0; /* Item 2 кыскабайт */
}

Эгер контейнер 200pxден кең болсо (100px + 100px), анда item-1 калган бош орунду толук алат. Эгер ал 200px болсо, item-2 өзүнүн негизги өлчөмүн сактайт жана item-1 кыскарат.