Junior
როგორ შეიძლება მოქნილი გზით შეცვალოთ flexbox-ით გამოყენებული ელემენტების ზომები?
sobes.tech AI
პასუხი AI-სგან
Flexbox-ის ელემენტების ზომების მოქნილი ცვლილება შესაძლებელია flex-grow, flex-shrink და flex-basis თვისებებით.
flex-grow: განსაზღვრავს, რამდენად შეიძლება ელემენტი გაიზარდოს, იყენებს თავისუფალ სივრცეს კონტეინერში. მნიშვნელობა default-ით არის0(არ გაიზრდება). უფრო მაღალი მნიშვნელობა ნიშნავს უფრო დიდ გაზრდის კოეფიციენტს სხვა ელემენტებთან შედარებით.flex-shrink: განსაზღვრავს, რამდენად შეიძლება ელემენტი დაიკვეხნოს, როდესაც თავისუფალი სივრცე ნაკლებია. მნიშვნელობა default-ით არის1(დაიკვეხნება). უფრო მაღალი მნიშვნელობა ნიშნავს უფრო დიდ კვეხნის კოეფიციენტს.flex-basis: განსაზღვრავს ელემენტის საწყის ზომას, სანამ თავისუფალი სივრცე გაიყოფა. შეიძლება იყოს ფიქსირებული მნიშვნელობა (px, %, rem) ან საკვანძო სიტყვა (auto,content).
ეს სამი თვისება ხშირად გამოიყენება მოკლედ flex თვისებით: flex: <flex-grow> <flex-shrink> <flex-basis>;.
გამოყენების მაგალითები:
/* ელემენტი დაიკავებს ყველა ხელმისაწვდომ სივრცეს */
.flex-item {
flex-grow: 1;
}
/* ელემენტი არ დაიკვეხნება ნაკლებ სივრცეში */
.flex-item {
flex-shrink: 0;
}
/* ელემენტს აქვს საწყისი ზომა 100px, და შემდეგ იზრდება თუ ადგილი არის */
.flex-item {
flex: 1 1 100px;
}
/* ელემენტს აქვს საწყისი ზომა, განსაზღვრული მისი შიგთავსით, და შეიძლება დაიკვეხნას */
.flex-item {
flex: 0 1 auto; /* ტოლია `initial`-ს */
}
/* ელემენტი არ იზრდება, არ იკვეხნება და აქვს საწყისი ზომა, განსაზღვრული მისი შიგთავსით */
.flex-item {
flex: 0 0 auto; /* ტოლია `none`-ს */
}
/* ელემენტი იზრდება, იკვეხნება და აქვს საწყისი ზომა 0 (სწორედ ერთნაირი სიგანის ელემენტების შექმნისთვის) */
.flex-item {
flex: 1 1 0; /* ტოლია `auto`-ს */
}
ამ თვისებების გამოყენება საშუალებას აძლევს ზუსტად მართოთ ელემენტების ქცევა flex კონტეინერში, ეკრანის ზომის ან შიგთავსის ცვლილებისას.