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 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.
**Heads up!** This property has no affect on single rows of flex items.
< 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 >
2016-12-23 22:16:13 +01:00
{% highlight html %}
< div class = "d-flex align-content-start flex-wrap" >
...
2016-12-23 21:54:01 +01:00
< / div >
2016-12-23 22:16:13 +01:00
{% endhighlight %}
< 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 >
2016-12-23 22:16:13 +01:00
{% highlight html %}
< div class = "d-flex align-content-end flex-wrap" > ...< / div >
{% endhighlight %}
< 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 >
2016-12-23 22:16:13 +01:00
{% highlight html %}
< div class = "d-flex align-content-center flex-wrap" > ...< / div >
{% endhighlight %}
< 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 >
{% highlight html %}
< div class = "d-flex align-content-between flex-wrap" > ...< / div >
{% endhighlight %}
< 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 >
{% highlight html %}
< div class = "d-flex align-content-around flex-wrap" > ...< / div >
{% endhighlight %}
< 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 >
{% highlight html %}
< div class = "d-flex align-content-stretch flex-wrap" > ...< / div >
{% endhighlight %}