Flex
Behear fluch de yndieling, ôfstimming en grutte fan rasterkolommen, navigaasje, komponinten en mear mei in folsleine suite fan responsive flexbox-helpprogramma's. Foar mear komplekse ymplemintaasjes kin oanpaste CSS nedich wêze.
Skeakelje flexgedrach yn
display
Brûk nutsbedriuwen om in flexbox-container te meitsjen en direkte berneleminten te transformearjen yn flex - items. Flex-konteners en items kinne fierder wizige wurde mei ekstra flex-eigenskippen.
<div class="d-flex p-2">I'm a flexbox container!</div>
<div class="d-inline-flex p-2">I'm an inline flexbox container!</div>
Responsive fariaasjes besteane ek foar .d-flex
en .d-inline-flex
.
.d-flex
.d-inline-flex
.d-sm-flex
.d-sm-inline-flex
.d-md-flex
.d-md-inline-flex
.d-lg-flex
.d-lg-inline-flex
.d-xl-flex
.d-xl-inline-flex
.d-xxl-flex
.d-xxl-inline-flex
Rjochting
Stel de rjochting fan flex items yn in flex container mei rjochting nutsbedriuwen. Yn 'e measte gefallen kinne jo hjir de horizontale klasse weilitte, om't de browser standert is row
. Jo kinne lykwols situaasjes tsjinkomme wêr't jo dizze wearde eksplisyt moatte ynstelle (lykas responsive layouts).
Brûk .flex-row
om in horizontale rjochting yn te stellen (de browser standert), of .flex-row-reverse
om de horizontale rjochting fan 'e tsjinoerstelde kant te begjinnen.
<div class="d-flex flex-row mb-3">
<div class="p-2">Flex item 1</div>
<div class="p-2">Flex item 2</div>
<div class="p-2">Flex item 3</div>
</div>
<div class="d-flex flex-row-reverse">
<div class="p-2">Flex item 1</div>
<div class="p-2">Flex item 2</div>
<div class="p-2">Flex item 3</div>
</div>
Brûk .flex-column
om in fertikale rjochting yn te stellen, of .flex-column-reverse
om de fertikale rjochting fan 'e tsjinoerstelde kant te begjinnen.
<div class="d-flex flex-column mb-3">
<div class="p-2">Flex item 1</div>
<div class="p-2">Flex item 2</div>
<div class="p-2">Flex item 3</div>
</div>
<div class="d-flex flex-column-reverse">
<div class="p-2">Flex item 1</div>
<div class="p-2">Flex item 2</div>
<div class="p-2">Flex item 3</div>
</div>
Responsive fariaasjes besteane ek foar flex-direction
.
.flex-row
.flex-row-reverse
.flex-column
.flex-column-reverse
.flex-sm-row
.flex-sm-row-reverse
.flex-sm-column
.flex-sm-column-reverse
.flex-md-row
.flex-md-row-reverse
.flex-md-column
.flex-md-column-reverse
.flex-lg-row
.flex-lg-row-reverse
.flex-lg-column
.flex-lg-column-reverse
.flex-xl-row
.flex-xl-row-reverse
.flex-xl-column
.flex-xl-column-reverse
.flex-xxl-row
.flex-xxl-row-reverse
.flex-xxl-column
.flex-xxl-column-reverse
Rjochtfeardigje ynhâld
Brûk justify-content
nutsbedriuwen op flexbox-konteners om de ôfstimming fan flex-items op 'e haadas te feroarjen (de x-as om te begjinnen, y-as as flex-direction: column
). Kies út start
(standert browser), end
, center
, between
, around
, of evenly
.
<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>
<div class="d-flex justify-content-evenly">...</div>
Responsive fariaasjes besteane ek foar justify-content
.
.justify-content-start
.justify-content-end
.justify-content-center
.justify-content-between
.justify-content-around
.justify-content-evenly
.justify-content-sm-start
.justify-content-sm-end
.justify-content-sm-center
.justify-content-sm-between
.justify-content-sm-around
.justify-content-sm-evenly
.justify-content-md-start
.justify-content-md-end
.justify-content-md-center
.justify-content-md-between
.justify-content-md-around
.justify-content-md-evenly
.justify-content-lg-start
.justify-content-lg-end
.justify-content-lg-center
.justify-content-lg-between
.justify-content-lg-around
.justify-content-lg-evenly
.justify-content-xl-start
.justify-content-xl-end
.justify-content-xl-center
.justify-content-xl-between
.justify-content-xl-around
.justify-content-xl-evenly
.justify-content-xxl-start
.justify-content-xxl-end
.justify-content-xxl-center
.justify-content-xxl-between
.justify-content-xxl-around
.justify-content-xxl-evenly
Items rjochtsje
Brûk align-items
nutsbedriuwen op flexbox-konteners om de ôfstimming fan flex-items op 'e krús-as te feroarjen (de y-as om te begjinnen, x-as as flex-direction: column
). Kies út start
, end
, center
, baseline
, of stretch
(standert browser).
<div class="d-flex align-items-start">...</div>
<div class="d-flex align-items-end">...</div>
<div class="d-flex align-items-center">...</div>
<div class="d-flex align-items-baseline">...</div>
<div class="d-flex align-items-stretch">...</div>
Responsive fariaasjes besteane ek foar align-items
.
.align-items-start
.align-items-end
.align-items-center
.align-items-baseline
.align-items-stretch
.align-items-sm-start
.align-items-sm-end
.align-items-sm-center
.align-items-sm-baseline
.align-items-sm-stretch
.align-items-md-start
.align-items-md-end
.align-items-md-center
.align-items-md-baseline
.align-items-md-stretch
.align-items-lg-start
.align-items-lg-end
.align-items-lg-center
.align-items-lg-baseline
.align-items-lg-stretch
.align-items-xl-start
.align-items-xl-end
.align-items-xl-center
.align-items-xl-baseline
.align-items-xl-stretch
.align-items-xxl-start
.align-items-xxl-end
.align-items-xxl-center
.align-items-xxl-baseline
.align-items-xxl-stretch
Rjochtsje sels
Brûk align-self
nutsbedriuwen op flexbox-items om har ôfstimming op 'e krús-as yndividueel te feroarjen (de y-as om te begjinnen, x-as as flex-direction: column
). Kies út deselde opsjes as align-items
: start
, end
, center
, baseline
, of stretch
(standert browser).
<div class="align-self-start">Aligned flex item</div>
<div class="align-self-end">Aligned flex item</div>
<div class="align-self-center">Aligned flex item</div>
<div class="align-self-baseline">Aligned flex item</div>
<div class="align-self-stretch">Aligned flex item</div>
Responsive fariaasjes besteane ek foar align-self
.
.align-self-start
.align-self-end
.align-self-center
.align-self-baseline
.align-self-stretch
.align-self-sm-start
.align-self-sm-end
.align-self-sm-center
.align-self-sm-baseline
.align-self-sm-stretch
.align-self-md-start
.align-self-md-end
.align-self-md-center
.align-self-md-baseline
.align-self-md-stretch
.align-self-lg-start
.align-self-lg-end
.align-self-lg-center
.align-self-lg-baseline
.align-self-lg-stretch
.align-self-xl-start
.align-self-xl-end
.align-self-xl-center
.align-self-xl-baseline
.align-self-xl-stretch
.align-self-xxl-start
.align-self-xxl-end
.align-self-xxl-center
.align-self-xxl-baseline
.align-self-xxl-stretch
Folje
Brûk de .flex-fill
klasse op in searje sibling-eleminten om se yn breedtes te twingen dy't lykweardich binne oan har ynhâld (of gelikense breedtes as har ynhâld har grinsdoazen net oerkomt) wylst se alle beskikbere horizontale romte opnimme.
<div class="d-flex">
<div class="p-2 flex-fill">Flex item with a lot of content</div>
<div class="p-2 flex-fill">Flex item</div>
<div class="p-2 flex-fill">Flex item</div>
</div>
Responsive fariaasjes besteane ek foar flex-fill
.
.flex-fill
.flex-sm-fill
.flex-md-fill
.flex-lg-fill
.flex-xl-fill
.flex-xxl-fill
Groei en krimp
Brûk .flex-grow-*
nutsbedriuwen om it fermogen fan in flex-item te wikseljen om te groeien om beskikbere romte te foljen. Yn it foarbyld hjirûnder .flex-grow-1
brûke de eleminten alle beskikbere romte dy't it kin, wylst de oerbleaune twa flexitems harren nedige romte tastean.
<div class="d-flex">
<div class="p-2 flex-grow-1">Flex item</div>
<div class="p-2">Flex item</div>
<div class="p-2">Third flex item</div>
</div>
Brûk .flex-shrink-*
nutsbedriuwen om it fermogen fan in flex-item te wikseljen om as nedich te krimp. Yn it foarbyld hjirûnder, de twadde flex item mei .flex-shrink-1
wurdt twongen om wrap syn ynhâld nei in nije rigel, "krimpen" foar in tastean mear romte foar de foarige flex item mei .w-100
.
<div class="d-flex">
<div class="p-2 w-100">Flex item</div>
<div class="p-2 flex-shrink-1">Flex item</div>
</div>
Responsive fariaasjes besteane ek foar flex-grow
en flex-shrink
.
.flex-{grow|shrink}-0
.flex-{grow|shrink}-1
.flex-sm-{grow|shrink}-0
.flex-sm-{grow|shrink}-1
.flex-md-{grow|shrink}-0
.flex-md-{grow|shrink}-1
.flex-lg-{grow|shrink}-0
.flex-lg-{grow|shrink}-1
.flex-xl-{grow|shrink}-0
.flex-xl-{grow|shrink}-1
.flex-xxl-{grow|shrink}-0
.flex-xxl-{grow|shrink}-1
Auto marzjes
Flexbox kin wat moaie geweldige dingen dwaan as jo flex-ôfstimmingen mingje mei automarzjes. Hjirûnder werjûn trije foarbylden fan it kontrolearjen fan flex items fia auto marzjes: standert (gjin auto marzje), triuwe twa items nei rjochts ( .me-auto
), en triuwe twa items nei lofts ( .ms-auto
).
<div class="d-flex mb-3">
<div class="p-2">Flex item</div>
<div class="p-2">Flex item</div>
<div class="p-2">Flex item</div>
</div>
<div class="d-flex mb-3">
<div class="me-auto p-2">Flex item</div>
<div class="p-2">Flex item</div>
<div class="p-2">Flex item</div>
</div>
<div class="d-flex mb-3">
<div class="p-2">Flex item</div>
<div class="p-2">Flex item</div>
<div class="ms-auto p-2">Flex item</div>
</div>
Mei align-items
Fertikaal ferpleatse ien flex-item nei de boppe- of ûnderkant fan in kontener troch te mingjen align-items
, flex-direction: column
, en margin-top: auto
of margin-bottom: auto
.
<div class="d-flex align-items-start flex-column mb-3" style="height: 200px;">
<div class="mb-auto p-2">Flex item</div>
<div class="p-2">Flex item</div>
<div class="p-2">Flex item</div>
</div>
<div class="d-flex align-items-end flex-column mb-3" style="height: 200px;">
<div class="p-2">Flex item</div>
<div class="p-2">Flex item</div>
<div class="mt-auto p-2">Flex item</div>
</div>
Wrap
Feroarje hoe't flex items wrapje yn in flexcontainer. Kies út hielendal gjin wrapping (de browser standert) mei .flex-nowrap
, wrapping mei .flex-wrap
, of omkearde wrapping mei .flex-wrap-reverse
.
<div class="d-flex flex-nowrap">
...
</div>
<div class="d-flex flex-wrap">
...
</div>
<div class="d-flex flex-wrap-reverse">
...
</div>
Responsive fariaasjes besteane ek foar flex-wrap
.
.flex-nowrap
.flex-wrap
.flex-wrap-reverse
.flex-sm-nowrap
.flex-sm-wrap
.flex-sm-wrap-reverse
.flex-md-nowrap
.flex-md-wrap
.flex-md-wrap-reverse
.flex-lg-nowrap
.flex-lg-wrap
.flex-lg-wrap-reverse
.flex-xl-nowrap
.flex-xl-wrap
.flex-xl-wrap-reverse
.flex-xxl-nowrap
.flex-xxl-wrap
.flex-xxl-wrap-reverse
Oarder
Feroarje de fisuele folchoarder fan spesifike flex-items mei in hânfol order
nutsbedriuwen. Wy jouwe allinich opsjes foar it meitsjen fan in item earst as lêste, lykas ek in reset om de DOM-oarder te brûken. As order
nimt eltse integer wearde fan 0 oan 5, add custom CSS foar alle ekstra wearden nedich.
<div class="d-flex flex-nowrap">
<div class="order-3 p-2">First flex item</div>
<div class="order-2 p-2">Second flex item</div>
<div class="order-1 p-2">Third flex item</div>
</div>
Responsive fariaasjes besteane ek foar order
.
.order-0
.order-1
.order-2
.order-3
.order-4
.order-5
.order-sm-0
.order-sm-1
.order-sm-2
.order-sm-3
.order-sm-4
.order-sm-5
.order-md-0
.order-md-1
.order-md-2
.order-md-3
.order-md-4
.order-md-5
.order-lg-0
.order-lg-1
.order-lg-2
.order-lg-3
.order-lg-4
.order-lg-5
.order-xl-0
.order-xl-1
.order-xl-2
.order-xl-3
.order-xl-4
.order-xl-5
.order-xxl-0
.order-xxl-1
.order-xxl-2
.order-xxl-3
.order-xxl-4
.order-xxl-5
Derneist binne d'r ek responsive .order-first
en .order-last
klassen dy't de fan in elemint feroarje troch respektivelik order
oan te passen .order: -1
order: 6
.order-first
.order-last
.order-sm-first
.order-sm-last
.order-md-first
.order-md-last
.order-lg-first
.order-lg-last
.order-xl-first
.order-xl-last
.order-xxl-first
.order-xxl-last
Ynhâld rjochtsje
Brûk align-content
nutsbedriuwen op flexbox-konteners om flex-items tegearre op 'e krúsas út te rjochtsjen. Kies út start
(standert browser), end
, center
, between
, around
, of stretch
. Om dizze nutsfoarsjenningen te demonstrearjen, hawwe wy flex-wrap: wrap
it oantal flexitems hanthavene en ferhege.
Heads up! Dit pân hat gjin effekt op inkele rigen fan flex items.
<div class="d-flex align-content-start flex-wrap">
...
</div>
<div class="d-flex align-content-end flex-wrap">...</div>
<div class="d-flex align-content-center flex-wrap">...</div>
<div class="d-flex align-content-between flex-wrap">...</div>
<div class="d-flex align-content-around flex-wrap">...</div>
<div class="d-flex align-content-stretch flex-wrap">...</div>
Responsive fariaasjes besteane ek foar align-content
.
.align-content-start
.align-content-end
.align-content-center
.align-content-between
.align-content-around
.align-content-stretch
.align-content-sm-start
.align-content-sm-end
.align-content-sm-center
.align-content-sm-between
.align-content-sm-around
.align-content-sm-stretch
.align-content-md-start
.align-content-md-end
.align-content-md-center
.align-content-md-between
.align-content-md-around
.align-content-md-stretch
.align-content-lg-start
.align-content-lg-end
.align-content-lg-center
.align-content-lg-between
.align-content-lg-around
.align-content-lg-stretch
.align-content-xl-start
.align-content-xl-end
.align-content-xl-center
.align-content-xl-between
.align-content-xl-around
.align-content-xl-stretch
.align-content-xxl-start
.align-content-xxl-end
.align-content-xxl-center
.align-content-xxl-between
.align-content-xxl-around
.align-content-xxl-stretch
Media objekt
Op syk nei it replikearjen fan it mediaobjektkomponint fan Bootstrap 4? Meitsje it yn gjin tiid opnij mei in pear fleksibiliteitsprogramma's dy't noch mear fleksibiliteit en oanpassing tastean dan earder.
<div class="d-flex">
<div class="flex-shrink-0">
<img src="..." alt="...">
</div>
<div class="flex-grow-1 ms-3">
This is some content from a media component. You can replace this with any content and adjust it as needed.
</div>
</div>
En sis dat jo de ynhâld fertikaal sintrum wolle njonken de ôfbylding:
<div class="d-flex align-items-center">
<div class="flex-shrink-0">
<img src="..." alt="...">
</div>
<div class="flex-grow-1 ms-3">
This is some content from a media component. You can replace this with any content and adjust it as needed.
</div>
</div>
Sass
Utilities API
Flexbox-nutsbedriuwen wurde ferklearre yn ús utilities API yn scss/_utilities.scss
. Learje hoe't jo de utilities API brûke.
"flex": (
responsive: true,
property: flex,
values: (fill: 1 1 auto)
),
"flex-direction": (
responsive: true,
property: flex-direction,
class: flex,
values: row column row-reverse column-reverse
),
"flex-grow": (
responsive: true,
property: flex-grow,
class: flex,
values: (
grow-0: 0,
grow-1: 1,
)
),
"flex-shrink": (
responsive: true,
property: flex-shrink,
class: flex,
values: (
shrink-0: 0,
shrink-1: 1,
)
),
"flex-wrap": (
responsive: true,
property: flex-wrap,
class: flex,
values: wrap nowrap wrap-reverse
),
"justify-content": (
responsive: true,
property: justify-content,
values: (
start: flex-start,
end: flex-end,
center: center,
between: space-between,
around: space-around,
evenly: space-evenly,
)
),
"align-items": (
responsive: true,
property: align-items,
values: (
start: flex-start,
end: flex-end,
center: center,
baseline: baseline,
stretch: stretch,
)
),
"align-content": (
responsive: true,
property: align-content,
values: (
start: flex-start,
end: flex-end,
center: center,
between: space-between,
around: space-around,
stretch: stretch,
)
),
"align-self": (
responsive: true,
property: align-self,
values: (
auto: auto,
start: flex-start,
end: flex-end,
center: center,
baseline: baseline,
stretch: stretch,
)
),
"order": (
responsive: true,
property: order,
values: (
first: -1,
0: 0,
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
last: 6,
),
),