flex
Властивість-скорочення CSS flex
(гнутися) задає те, як гнучкий елемент зростатиме чи скорочуватиметься для заповнення доступного в гнучкому контейнері простору.
Спробуйте його в дії
Складові властивості
Ця властивість є скороченням наступних властивостей CSS:
Синтаксис
/* Значення – ключові слова */
flex: auto;
flex: initial;
flex: none;
/* Одне значення, число без одиниць вимірювання: flex-grow
flex-basis у такому разі дорівнює 0. */
flex: 2;
/* Одне значення, ширина чи висота: flex-basis */
flex: 10em;
flex: 30%;
flex: min-content;
/* Два значення: flex-grow | flex-basis */
flex: 1 30px;
/* Два значення: flex-grow | flex-shrink */
flex: 2 2;
/* Три значення: flex-grow | flex-shrink | flex-basis */
flex: 2 2 10%;
/* Глобальні значення */
flex: inherit;
flex: initial;
flex: revert;
flex: revert-layer;
flex: unset;
Властивість flex
може бути задана у вигляді одного, двох чи трьох значень.
-
Синтаксис одного значення: значення мусить бути одним з таких варіантів:
- дійсне для
<flex-grow>
значення: тоді скорочення розгортається якflex: <flex-grow> 1 0
. - дійсне для
<flex-basis>
значення: тоді скорочення розгортається якflex: 1 1 <flex-basis>
. - ключове слово
none
, або одне з глобальних ключових слів.
- дійсне для
-
Синтаксис двох значень:
-
Перше значення мусить бути:
<number>
– тлумачиться як<flex-grow>
.
-
Друге значення мусить бути одним з таких варіантів:
- дійсне для
flex-shrink
значення: тоді скорочення розгортається якflex: <flex-grow> <flex-shrink> 0
. - дійсне для
flex-basis
значення: тоді скорочення розгортається якflex: <flex-grow> 1 <flex-basis>
.
- дійсне для
-
-
Синтаксис трьох значень: значення мусять бути в наступному порядку:
- дійсне для
flex-grow
значення. - дійсне для
flex-shrink
значення. - дійсне для
flex-basis
значення.
- дійсне для
Значення
initial
Елемент калібрується згідно зі своїми властивостями
width
іheight
. Він скорочується до свого мінімального розміру, аби вміститись у контейнер, але не росте для захоплення доступного в гнучкому контейнері вільного простору. Це рівносильно заданню "flex: 0 1 auto
".auto
Елемент калібрується згідно зі своїми властивостями
width
іheight
, але росте для захоплення доступного в гнучкому контейнері вільного простору, а також скорочується до свого мінімального розміру, аби в контейнері поміститися. Це рівносильно заданню "flex: 1 1 auto
".none
Елемент калібрується згідно зі своїми властивостями
width
іheight
. Він геть негнучкий: і не скорочується, і не росте щодо гнучкого контейнера. Це рівносильно заданню "flex: 0 0 auto
".<'flex-grow'>
Визначає
flex-grow
гнучкого елемента. Від'ємні значення вважаються недійсними. Коли упущено – вважається1
. (початкове значення –0
)<'flex-shrink'>
Визначає
flex-shrink
гнучкого елемента. Від'ємні значення вважаються недійсними. Коли упущено – вважається1
. (початкове значення –1
)<'flex-basis'>
Визначає
flex-basis
гнучкого елемента. Значення0
мусить мати одиниці вимірювання, щоб не тлумачитись як гнучкість. Коли упущено – вважається0
. (початкове значення –auto
)
Опис
У більшості випадків розробники повинні давати flex
одне з наступних значень: auto
, initial
, none
чи додатне число без одиниць вимірювання. Аби побачити в дії ці значення, спробуйте змінити розмір гнучких контейнерів нижче:
Усталено гнучкі елементи не скорочуються до розмірів, менших за їх мінімальний розмір вмісту. Щоб це змінити, треба задати елементові min-width
чи min-height
.
Формальне визначення
Початкове значення | так як і всі інші властивості зі скорочення:
|
---|---|
Успадковується | ні |
Обчислене значення | так як і всі інші властивості зі скорочення:
|
Формальний синтаксис
none | [ <\'flex-grow\'> <\'flex-shrink\'>? || <\'flex-basis\'> ]
Приклади
flex: auto
HTML
<div id="flex-container">
<div class="flex-item" id="flex">
Гнучкий елемент (клацніть, аби показати чи прибрати звичайний елемент)
</div>
<div class="raw-item" id="raw">Звичайний елемент</div>
</div>
CSS
#flex-container {
display: flex;
flex-direction: row;
}
#flex-container > .flex-item {
flex: auto;
}
#flex-container > .raw-item {
width: 5rem;
}
Результат
Специфікації
Специфікація | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Unknown specification
Сумісність із браузерами
See also
|