Den flex
egenskapen er en under egenskap av Flexible Box Layout modul.
Dette er stenografien for flex-grow
, flex-shrink
og flex-basis
. Den andre og tredje parameteren ( flex-shrink
og flex-basis
) er valgfri.
Syntaks
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 */ )
Her er oversikten over hva verdiene tilordnes, avhengig av hvor mange verdier du gir den:
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
Felles verdier for flex
flex: 0 auto;
Dette er det samme som flex: initial;
og stenografi for standardverdi: flex: 0 1 auto
. Den størrelser varen basert på dens width
/ height
egenskaper (eller innholdet hvis det ikke er angitt).
Det gjør flex-elementet lite fleksibelt når det er noe ledig plass igjen, men lar det krympe til sitt minimum når det ikke er nok plass. Justeringsevnen eller auto
margene kan brukes til å justere bøyningselementer langs hovedaksen.
flex: auto;
Dette tilsvarer flex: 1 1 auto
. Vær forsiktig, dette er ikke standardverdien. Det størrelser elementet basert på sine width
/ height
egenskaper, men gjør det fullt fleksibel slik at de absorberer noe ekstra plass langs hovedaksen.
Hvis alle elementene er enten flex: auto
, flex: initial
eller flex: none
, eventuelle gjenværende plass etter at elementene er dimensjonert vil bli fordelt jevnt på de elementer med flex: auto
.
flex: ingen;
Dette tilsvarer flex: 0 0 auto
. Den størrelser varen i henhold til dens width
/ height
egenskaper, men gjør den fullstendig ufleksibel.
Dette ligner på flex: initial
bortsett fra at det ikke er lov å krympe, selv ikke i en overløpssituasjon.
bøye:
Tilsvarer flex: 1 0px
. Det gjør flex-elementet fleksibelt og setter flex-grunnlaget til null, noe som resulterer i et element som mottar den spesifiserte andelen av gjenværende plass.
Hvis alle elementene i flexcontaineren bruker dette mønsteret, vil størrelsene være proporsjonale med den angitte flexfaktoren.
Demo
Følgende demo viser et veldig enkelt oppsett med Flexbox takket være flex
eiendommen:
Her er den avslørende biten av kode:
.header, .footer ( flex: 1 100%; ) .sidebar ( flex: 1; ) .main ( flex: 2; )
Først har vi godkjent at flex-elementer skal vises på flere rader med flex-flow: row wrap
.
Så ber vi både topptekst og bunntekst om å ta 100% av gjeldende visningsportbredde, uansett hva.
Og hovedinnholdet og begge sidefelt vil dele samme rad, og dele den gjenværende plassen som følger: 66% (2 / (1 + 2)) for hovedinnholdet, 33% (1 / (1 + 2)) for sidefeltet .
Nettleserstøtte
- (moderne) betyr den nylige syntaksen fra spesifikasjonen (f.eks.
display: flex;
) - (hybrid) betyr en merkelig uoffisiell syntaks fra 2011 (f.eks.
display: flexbox;
) - (gammel) betyr den gamle syntaksen fra 2009 (f.eks.
display: box;
)
Chrome | Safari | Firefox | Opera | DVS | Android | iOS |
---|---|---|---|---|---|---|
21+ (moderne) 20- (gammel) | 3.1+ (gammel) | 2-21 (gammel) 22+ (ny) | 12.1+ (moderne) | 10+ (hybrid) | 2.1+ (gammel) | 3.2+ (gammel) |
Blackberry browser 10+ støtter den nye syntaksen.
For mer informasjon om hvordan du blander syntakser for å få best nettleserstøtte, se denne artikkelen (CSS-triks) eller denne artikkelen (DevOpera).