flex
Имовина је под-својство Флексибилна кутија Лаиоут модула.
То је скраћеница за flex-grow
, flex-shrink
и flex-basis
. Други и трећи параметар ( flex-shrink
и flex-basis
) нису обавезни.
Синтакса
flex: none | ( ? || ) .flex-item ( /* this */ flex: 1 100px; /* is the same as */ flex-grow: 1; flex-basis: 100px; /* and it leaves the flex-shrink property alone, which would be */ flex-shrink: inherit; /* defaults to 1 */ )
Ево тачке за мапирање вредности у зависности од тога колико вредности дајете:
flex: none /* value 'none' case */ flex: /* One value syntax, variation 1 */ flex: /* One value syntax, variation 2 */ flex: /* Two values syntax, variation 1 */ flex: /* Two values syntax, variation 2 */ flex: /* Three values syntax */ flex: inherit
Заједничке вредности за flex
флекс: 0 ауто;
То је исто као flex: initial;
и скраћеница за вредност: flex: 0 1 auto
. Ставку одређује на основу њених width
/ height
својстава (или садржаја ако није подешен).
Чини флексибилни предмет нефлексибилним када остане мало слободног простора, али му омогућава да се смањи на минимум када нема довољно простора. Способности поравнања или auto
маргине могу се користити за поравнавање флексибилних предмета дуж главне осе.
флекс: ауто;
Ово је еквивалентно flex: 1 1 auto
. Пазите, ово није подразумевана вредност. Предмет димензионира на основу његових width
/ height
својстава, али га чини потпуно флексибилним тако да апсорбује сваки додатни простор дуж главне осе.
Ако све ставке су или flex: auto
, flex: initial
или flex: none
, преостали простор након су величине, ствари ће бити равномерно распоређена на ставке са flex: auto
.
флекс: ниједан;
Ово је еквивалентно flex: 0 0 auto
. Ставку прилагођава према њеним width
/ height
својствима, али је чини потпуно нефлексибилном.
Ово је слично, flex: initial
осим што се не сме смањити, чак ни у ситуацији преливања.
флек:
Еквивалентно flex: 1 0px
. То флексибилну ставку чини флексибилном и поставља флексибилну основу на нулу, што резултира ставком која прима наведени део преосталог простора.
Ако сви предмети у флекс контејнеру користе овај образац, њихове величине ће бити пропорционалне наведеном фактору флексије.
Демо
Следећа демонстрација приказује врло једноставан изглед са Флекбок-ом захваљујући flex
својству:
Ево откривеног дела кода:
.header, .footer ( flex: 1 100%; ) .sidebar ( flex: 1; ) .main ( flex: 2; )
Прво, одобрили смо флекс ставке за приказ у више редова помоћу flex-flow: row wrap
.
Тада кажемо и заглављу и подножју да заузму 100% тренутне ширине оквира за приказ, без обзира на све.
И главни садржај и обе бочне траке делиће исти ред, делећи преостали простор на следећи начин: 66% (2 / (1 + 2)) за главни садржај, 33% (1 / (1 + 2)) за бочну траку .
Подршка прегледача
- (модерно) значи недавну синтаксу из спецификације (нпр.
display: flex;
) - (хибрид) значи чудну незваничну синтаксу из 2011. године (нпр.
display: flexbox;
) - (стара) значи стара синтакса из 2009. године (нпр.
display: box;
)
Хром | Сафари | Фирефок | Опера | ИЕ | Андроид | иОС |
---|---|---|---|---|---|---|
21+ (модерно) 20- (старо) | 3,1+ (старо) | 2-21 (стари) 22+ (нови) | 12,1+ (модерно) | 10+ (хибридно) | 2,1+ (старо) | 3,2+ (стара) |
Прегледач Блацкберри 10+ подржава нову синтаксу.
За више информација о томе како мешати синтаксе како бисте добили најбољу подршку за прегледач, погледајте овај чланак (ЦСС-трикови) или овај чланак (ДевОпера).