2016-12-23 20:48:03 +01:00
---
layout: docs
title: Flexbox
group: utilities
---
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.
## Contents
* Will be replaced with the ToC, excluding the "Contents" header
{:toc}
## 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
{% example html %}
< div class = "d-flex p-2 bd-highlight" > I'm a flexbox container!< / div >
{% endexample %}
{% example html %}
< div class = "d-inline-flex p-2 bd-highlight" > I'm an inline flexbox container!< / div >
{% endexample %}
Responsive variations also exist for `.d-flex` and `.d-inline-flex` .
2016-12-23 20:56:07 +01:00
{% for bp in site.data.breakpoints %}
- `.d{{ bp.abbr }}-flex`
- `.d{{ bp.abbr }}-inline-flex` {% endfor %}
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).
Use `.flex-row` to set a horizontal direction.
{% example html %}
< div class = "d-flex flex-row 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 >
{% endexample %}
Use `.flex-column` to set a vertical direction.
{% example html %}
< div class = "d-flex flex-column 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 >
{% endexample %}
Responsive variations also exist for `.flex-row` and `.flex-column` .
2016-12-23 20:56:07 +01:00
{% for bp in site.data.breakpoints %}
- `.flex{{ bp.abbr }}-row`
- `.flex{{ bp.abbr }}-column` {% endfor %}
2016-12-23 20:48:03 +01:00
## Wrap
Change how flex items wrap in a flex container. Choose from no wrapping at all (the browser default) with `.flex-nowrap` , or enable wrapping with `.flex-wrap` .
{% example html %}
< div class = "d-flex flex-nowrap bd-highlight" >
2016-12-23 21:40: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 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 >
2016-12-23 20:48:03 +01:00
< / div >
{% endexample %}
{% example html %}
< 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 >
{% endexample %}
Responsive variations also exist for `.flex-nowrap` and `.flex-wrap` .
2016-12-23 20:56:07 +01:00
{% for bp in site.data.breakpoints %}
- `.flex{{ bp.abbr }}-nowrap`
- `.flex{{ bp.abbr }}-wrap` {% endfor %}
2016-12-23 21:54:01 +01:00
## Justify content
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` , or `around` .
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 >
< div class = "d-flex justify-content-around 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
{% highlight html %}
< 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 >
{% endhighlight %}
2016-12-23 21:54:01 +01:00
## Align items
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` (browser default), `end` , `center` , `baseline` , or `stretch` .
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
{% highlight html %}
< 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 >
{% endhighlight %}
2016-12-23 21:54:01 +01:00
< / 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 >
{% endexample %}