2016-12-23 20:48:03 +01:00
---
layout: docs
2017-07-02 04:48:24 +02:00
title: Flex
2017-05-28 20:25:59 +02:00
description: Quickly manage the layout, alignment, and sizing of grid columns, navigation, components, and more with a full suite of responsive flexbox utilities. For more complex implementations, custom CSS may be necessary.
2016-12-23 20:48:03 +01:00
group: utilities
2017-05-28 20:25:59 +02:00
toc: true
2016-12-23 20:48:03 +01:00
---
## Enable flex behaviors
2016-12-23 20:56:07 +01:00
Apply `display` utilities to create a flexbox container and transform **direct children elements** into flex items. Flex containers and items are able to be modified further with additional flex properties.
2016-12-23 20:48:03 +01:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2016-12-23 20:48:03 +01:00
< div class = "d-flex p-2 bd-highlight" > I'm a flexbox container!< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2016-12-23 20:48:03 +01:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2016-12-23 20:48:03 +01:00
< div class = "d-inline-flex p-2 bd-highlight" > I'm an inline flexbox container!< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2016-12-23 20:48:03 +01:00
Responsive variations also exist for `.d-flex` and `.d-inline-flex` .
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.d{{ .abbr }}-flex`
- `.d{{ .abbr }}-inline-flex`
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2016-12-23 20:56:07 +01:00
2016-12-23 20:48:03 +01:00
## Direction
Set the direction of flex items in a flex container with direction utilities. In most cases you can omit the horizontal class here as the browser default is `row` . However, you may encounter situations where you needed to explicitly set this value (like responsive layouts).
2016-12-26 22:17:50 +01:00
Use `.flex-row` to set a horizontal direction (the browser default), or `.flex-row-reverse` to start the horizontal direction from the opposite side.
2016-12-23 20:48:03 +01:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2016-12-26 22:17:50 +01:00
< div class = "d-flex flex-row bd-highlight mb-3" >
< div class = "p-2 bd-highlight" > Flex item 1< / div >
< div class = "p-2 bd-highlight" > Flex item 2< / div >
< div class = "p-2 bd-highlight" > Flex item 3< / div >
< / div >
< div class = "d-flex flex-row-reverse bd-highlight" >
< div class = "p-2 bd-highlight" > Flex item 1< / div >
< div class = "p-2 bd-highlight" > Flex item 2< / div >
< div class = "p-2 bd-highlight" > Flex item 3< / div >
2016-12-23 20:48:03 +01:00
< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2016-12-23 20:48:03 +01:00
2016-12-26 22:17:50 +01:00
Use `.flex-column` to set a vertical direction, or `.flex-column-reverse` to start the vertical direction from the opposite side.
2016-12-23 20:48:03 +01:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2016-12-26 22:17:50 +01:00
< div class = "d-flex flex-column bd-highlight mb-3" >
< div class = "p-2 bd-highlight" > Flex item 1< / div >
< div class = "p-2 bd-highlight" > Flex item 2< / div >
< div class = "p-2 bd-highlight" > Flex item 3< / div >
< / div >
< div class = "d-flex flex-column-reverse bd-highlight" >
< div class = "p-2 bd-highlight" > Flex item 1< / div >
< div class = "p-2 bd-highlight" > Flex item 2< / div >
< div class = "p-2 bd-highlight" > Flex item 3< / div >
2016-12-23 20:48:03 +01:00
< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2016-12-23 20:48:03 +01:00
2016-12-26 22:23:07 +01:00
Responsive variations also exist for `flex-direction` .
2016-12-23 20:48:03 +01:00
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.flex{{ .abbr }}-row`
- `.flex{{ .abbr }}-row-reverse`
- `.flex{{ .abbr }}-column`
- `.flex{{ .abbr }}-column-reverse`
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2016-12-23 20:56:07 +01:00
2016-12-23 21:54:01 +01:00
## Justify content
2020-05-30 15:19:10 +02:00
Use `justify-content` utilities on flexbox containers to change the alignment of flex items on the main axis (the x-axis to start, y-axis if `flex-direction: column` ). Choose from `start` (browser default), `end` , `center` , `between` , `around` , or `evenly` .
2016-12-23 21:54:01 +01:00
2016-12-23 22:15:55 +01:00
< div class = "bd-example" >
< div class = "d-flex justify-content-start bd-highlight mb-3" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex justify-content-end bd-highlight mb-3" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex justify-content-center bd-highlight mb-3" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex justify-content-between bd-highlight mb-3" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2021-03-09 16:41:39 +01:00
< div class = "d-flex justify-content-around bd-highlight mb-3" >
2016-12-23 22:15:55 +01:00
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2020-05-30 15:19:10 +02:00
< div class = "d-flex justify-content-evenly bd-highlight" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2016-12-23 21:54:01 +01:00
< / div >
2016-12-23 22:15:55 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:15:55 +01:00
< 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 >
2020-05-30 15:19:10 +02:00
< div class = "d-flex justify-content-evenly" > ...< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-23 21:54:01 +01:00
2016-12-26 22:23:07 +01:00
Responsive variations also exist for `justify-content` .
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.justify-content{{ .abbr }}-start`
- `.justify-content{{ .abbr }}-end`
- `.justify-content{{ .abbr }}-center`
- `.justify-content{{ .abbr }}-between`
- `.justify-content{{ .abbr }}-around`
2020-05-30 15:19:10 +02:00
- `.justify-content{{ .abbr }}-evenly`
2019-01-08 17:33:28 +01:00
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2016-12-26 22:23:07 +01:00
2016-12-23 21:54:01 +01:00
## Align items
2016-12-23 22:23:11 +01:00
Use `align-items` utilities on flexbox containers to change the alignment of flex items on the cross axis (the y-axis to start, x-axis if `flex-direction: column` ). Choose from `start` , `end` , `center` , `baseline` , or `stretch` (browser default).
2016-12-23 21:54:01 +01:00
2016-12-23 22:15:55 +01:00
< div class = "bd-example" >
< div class = "d-flex align-items-start bd-highlight mb-3" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex align-items-end bd-highlight mb-3" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex align-items-center bd-highlight mb-3" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex align-items-baseline bd-highlight mb-3" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex align-items-stretch bd-highlight" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2016-12-23 21:54:01 +01:00
< / div >
2016-12-23 22:15:55 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:15:55 +01:00
< 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 >
2020-10-19 11:56:49 +02:00
```
2016-12-23 22:16:13 +01:00
2016-12-26 22:23:07 +01:00
Responsive variations also exist for `align-items` .
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.align-items{{ .abbr }}-start`
- `.align-items{{ .abbr }}-end`
- `.align-items{{ .abbr }}-center`
- `.align-items{{ .abbr }}-baseline`
- `.align-items{{ .abbr }}-stretch`
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2016-12-26 22:23:07 +01:00
2016-12-23 22:23:11 +01:00
## Align self
Use `align-self` utilities on flexbox items to individually change their alignment on the cross axis (the y-axis to start, x-axis if `flex-direction: column` ). Choose from the same options as `align-items` : `start` , `end` , `center` , `baseline` , or `stretch` (browser default).
< div class = "bd-example" >
< div class = "d-flex bd-highlight mb-3" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "align-self-start p-2 bd-highlight" > Aligned flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex bd-highlight mb-3" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "align-self-end p-2 bd-highlight" > Aligned flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex bd-highlight mb-3" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "align-self-center p-2 bd-highlight" > Aligned flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex bd-highlight mb-3" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "align-self-baseline p-2 bd-highlight" > Aligned flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex bd-highlight" style = "height: 100px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "align-self-stretch p-2 bd-highlight" > Aligned flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< / div >
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:23:11 +01:00
< 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 >
2020-10-19 11:56:49 +02:00
```
2016-12-23 22:23:11 +01:00
2016-12-26 22:23:07 +01:00
Responsive variations also exist for `align-self` .
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.align-self{{ .abbr }}-start`
- `.align-self{{ .abbr }}-end`
- `.align-self{{ .abbr }}-center`
- `.align-self{{ .abbr }}-baseline`
- `.align-self{{ .abbr }}-stretch`
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2016-12-26 22:23:07 +01:00
2018-01-21 01:44:38 +01:00
## Fill
2018-10-30 10:38:13 +01:00
Use the `.flex-fill` class on a series of sibling elements to force them into widths equal to their content (or equal widths if their content does not surpass their border-boxes) while taking up all available horizontal space.
2018-01-21 01:44:38 +01:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2018-01-21 01:44:38 +01:00
< div class = "d-flex bd-highlight" >
2018-10-21 17:54:09 +02:00
< div class = "p-2 flex-fill bd-highlight" > Flex item with a lot of content< / div >
2018-01-21 01:44:38 +01:00
< div class = "p-2 flex-fill bd-highlight" > Flex item< / div >
< div class = "p-2 flex-fill bd-highlight" > Flex item< / div >
< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2018-01-21 01:44:38 +01:00
Responsive variations also exist for `flex-fill` .
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.flex{{ .abbr }}-fill`
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2018-01-21 01:44:38 +01:00
2018-03-31 23:22:01 +02:00
## Grow and shrink
Use `.flex-grow-*` utilities to toggle a flex item's ability to grow to fill available space. In the example below, the `.flex-grow-1` elements uses all available space it can, while allowing the remaining two flex items their necessary space.
2019-01-08 17:33:28 +01:00
{{< example > }}
2018-03-31 23:22:01 +02:00
< div class = "d-flex bd-highlight" >
< div class = "p-2 flex-grow-1 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Third flex item< / div >
< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2018-03-31 23:22:01 +02:00
2020-05-06 08:12:26 +02:00
Use `.flex-shrink-*` utilities to toggle a flex item's ability to shrink if necessary. In the example below, the second flex item with `.flex-shrink-1` is forced to wrap its contents to a new line, "shrinking" to allow more space for the previous flex item with `.w-100` .
2018-03-31 23:22:01 +02:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2018-03-31 23:22:01 +02:00
< div class = "d-flex bd-highlight" >
< div class = "p-2 w-100 bd-highlight" > Flex item< / div >
< div class = "p-2 flex-shrink-1 bd-highlight" > Flex item< / div >
< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2018-03-31 23:22:01 +02:00
Responsive variations also exist for `flex-grow` and `flex-shrink` .
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.flex{{ .abbr }}-{grow|shrink}-0`
- `.flex{{ .abbr }}-{grow|shrink}-1`
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2018-03-31 23:22:01 +02:00
2016-12-25 03:03:16 +01:00
## Auto margins
2020-06-09 15:44:20 +02:00
Flexbox can do some pretty awesome things when you mix flex alignments with auto margins. Shown below are three examples of controlling flex items via auto margins: default (no auto margin), pushing two items to the right (`.me-auto`), and pushing two items to the left (`.ms-auto`).
2016-12-25 03:11:57 +01:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2017-10-19 08:16:18 +02:00
< div class = "d-flex bd-highlight mb-3" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex bd-highlight mb-3" >
2020-06-09 15:44:20 +02:00
< div class = "me-auto p-2 bd-highlight" > Flex item< / div >
2016-12-25 03:03:16 +01:00
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2016-12-25 03:11:57 +01:00
2017-10-19 08:16:18 +02:00
< div class = "d-flex bd-highlight mb-3" >
2016-12-25 03:11:57 +01:00
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
2020-06-09 15:44:20 +02:00
< div class = "ms-auto p-2 bd-highlight" > Flex item< / div >
2016-12-25 03:11:57 +01:00
< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2016-12-25 03:11:57 +01:00
### With align-items
2017-10-19 08:16:18 +02:00
Vertically move one flex item to the top or bottom of a container by mixing `align-items` , `flex-direction: column` , and `margin-top: auto` or `margin-bottom: auto` .
2016-12-25 03:11:57 +01:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2016-12-25 03:11:57 +01:00
< div class = "d-flex align-items-start flex-column bd-highlight mb-3" style = "height: 200px;" >
< div class = "mb-auto p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< div class = "d-flex align-items-end flex-column bd-highlight mb-3" style = "height: 200px;" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "mt-auto p-2 bd-highlight" > Flex item< / div >
< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2016-12-25 03:03:16 +01:00
## Wrap
2016-12-26 22:17:50 +01:00
Change how flex items wrap in a flex container. Choose from no wrapping at all (the browser default) with `.flex-nowrap` , wrapping with `.flex-wrap` , or reverse wrapping with `.flex-wrap-reverse` .
2016-12-25 03:03:16 +01:00
2016-12-26 22:17:50 +01:00
< div class = "bd-example" >
2017-12-23 01:49:57 +01:00
< div class = "d-flex flex-nowrap bd-highlight" style = "width: 8rem;" >
2016-12-26 22:17:50 +01:00
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2016-12-25 03:03:16 +01:00
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-26 22:17:50 +01:00
< div class = "d-flex flex-nowrap" >
...
< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-25 03:03:16 +01:00
2016-12-26 22:17:50 +01:00
< div class = "bd-example" >
< div class = "d-flex flex-wrap bd-highlight" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-26 22:17:50 +01:00
< div class = "d-flex flex-wrap" >
...
2016-12-25 03:03:16 +01:00
< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-26 22:17:50 +01:00
< div class = "bd-example" >
< div class = "d-flex flex-wrap-reverse bd-highlight" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-26 22:17:50 +01:00
< div class = "d-flex flex-wrap-reverse" >
...
< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-26 22:17:50 +01:00
2016-12-26 22:23:07 +01:00
Responsive variations also exist for `flex-wrap` .
2016-12-25 03:03:16 +01:00
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.flex{{ .abbr }}-nowrap`
- `.flex{{ .abbr }}-wrap`
- `.flex{{ .abbr }}-wrap-reverse`
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2016-12-25 03:03:16 +01:00
2016-12-24 21:33:42 +01:00
## Order
2019-06-18 07:02:14 +02:00
Change the _visual_ order of specific flex items with a handful of `order` utilities. We only provide options for making an item first or last, as well as a reset to use the DOM order. As `order` takes any integer value from 0 to 5, add custom CSS for any additional values needed.
2016-12-24 21:33:42 +01:00
2019-01-08 17:33:28 +01:00
{{< example > }}
2016-12-24 21:33:42 +01:00
< div class = "d-flex flex-nowrap bd-highlight" >
2017-07-20 16:58:26 +02:00
< div class = "order-3 p-2 bd-highlight" > First flex item< / div >
< div class = "order-2 p-2 bd-highlight" > Second flex item< / div >
< div class = "order-1 p-2 bd-highlight" > Third flex item< / div >
2016-12-24 21:33:42 +01:00
< / div >
2019-01-08 17:33:28 +01:00
{{< / example > }}
2016-12-24 21:33:42 +01:00
2016-12-26 22:23:07 +01:00
Responsive variations also exist for `order` .
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $bp := $.Site.Data.breakpoints -}}
2019-09-02 11:31:02 +02:00
{{- range (seq 0 5) }}
- `.order{{ $bp.abbr }}-{{ . }}`
2019-06-18 07:02:14 +02:00
{{- end -}}
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2019-07-20 11:53:02 +02:00
Additionally there are also responsive `.order-first` and `.order-last` classes that change the `order` of an element by applying `order: -1` and `order: 6` , respectively.
2019-06-18 07:02:14 +02:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $bp := $.Site.Data.breakpoints -}}
2019-09-02 11:31:02 +02:00
{{- range (slice "first" "last") }}
- `.order{{ $bp.abbr }}-{{ . }}`
2019-01-08 17:33:28 +01:00
{{- end -}}
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2016-12-26 22:23:07 +01:00
2016-12-23 22:16:13 +01:00
## Align content
Use `align-content` utilities on flexbox containers to align flex items *together* on the cross axis. Choose from `start` (browser default), `end` , `center` , `between` , `around` , or `stretch` . To demonstrate these utilities, we've enforced `flex-wrap: wrap` and increased the number of flex items.
2017-08-09 17:09:28 +02:00
**Heads up!** This property has no effect on single rows of flex items.
2016-12-23 22:16:13 +01:00
< div class = "bd-example" >
< div class = "d-flex align-content-start flex-wrap bd-highlight mb-3" style = "height: 200px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2016-12-23 21:54:01 +01:00
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:16:13 +01:00
< div class = "d-flex align-content-start flex-wrap" >
...
2016-12-23 21:54:01 +01:00
< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-23 22:16:13 +01:00
< div class = "bd-example" >
< div class = "d-flex align-content-end flex-wrap bd-highlight mb-3" style = "height: 200px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2016-12-23 21:54:01 +01:00
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:16:13 +01:00
< div class = "d-flex align-content-end flex-wrap" > ...< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-23 22:16:13 +01:00
< div class = "bd-example" >
< div class = "d-flex align-content-center flex-wrap bd-highlight mb-3" style = "height: 200px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
2016-12-23 21:54:01 +01:00
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:16:13 +01:00
< div class = "d-flex align-content-center flex-wrap" > ...< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-23 22:16:13 +01:00
< div class = "bd-example" >
< div class = "d-flex align-content-between flex-wrap bd-highlight mb-3" style = "height: 200px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:16:13 +01:00
< div class = "d-flex align-content-between flex-wrap" > ...< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-23 22:16:13 +01:00
< div class = "bd-example" >
< div class = "d-flex align-content-around flex-wrap bd-highlight mb-3" style = "height: 200px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:16:13 +01:00
< div class = "d-flex align-content-around flex-wrap" > ...< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-23 22:16:13 +01:00
< div class = "bd-example" >
< div class = "d-flex align-content-stretch flex-wrap bd-highlight mb-3" style = "height: 200px" >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< div class = "p-2 bd-highlight" > Flex item< / div >
< / div >
< / div >
2017-10-30 22:53:57 +01:00
2020-10-19 11:56:49 +02:00
```html
2016-12-23 22:16:13 +01:00
< div class = "d-flex align-content-stretch flex-wrap" > ...< / div >
2020-10-19 11:56:49 +02:00
```
2016-12-26 22:23:07 +01:00
Responsive variations also exist for `align-content` .
2019-01-08 17:33:28 +01:00
{{< markdown > }}
{{< flex.inline > }}
{{- range $.Site.Data.breakpoints }}
- `.align-content{{ .abbr }}-start`
- `.align-content{{ .abbr }}-end`
- `.align-content{{ .abbr }}-center`
2021-12-14 21:29:35 +01:00
- `.align-content{{ .abbr }}-between`
2019-01-08 17:33:28 +01:00
- `.align-content{{ .abbr }}-around`
- `.align-content{{ .abbr }}-stretch`
{{- end -}}
{{< / flex.inline > }}
{{< / markdown > }}
2021-02-11 04:29:59 +01:00
2021-03-02 15:08:32 +01:00
## Media object
Looking to replicate the [media object component ](https://getbootstrap.com/docs/4.6/components/media-object/ ) from Bootstrap 4? Recreate it in no time with a few flex utilities that allow even more flexibility and customization than before.
{{< example > }}
< div class = "d-flex" >
< div class = "flex-shrink-0" >
{{< placeholder width = "100" height = "100" color = "#999" background = "#e5e5e5" text = "Image" > }}
< / 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 >
{{< / example > }}
And say you want to vertically center the content next to the image:
{{< example > }}
< div class = "d-flex align-items-center" >
< div class = "flex-shrink-0" >
{{< placeholder width = "100" height = "100" color = "#999" background = "#e5e5e5" text = "Image" > }}
< / 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 >
{{< / example > }}
2021-02-11 04:29:59 +01:00
## Sass
### Utilities API
Flexbox utilities are declared in our utilities API in `scss/_utilities.scss` . [Learn how to use the utilities API. ]({{< docsref "/utilities/api#using-the-api" >}} )
{{< scss-docs name = "utils-flex" file = "scss/_utilities.scss" > }}