Flexbox
TIP
- Flexbox Basics: mediaevent.de/css/display-flex or css-tricks.com/almanac/properties/f/flex/
- Shorthand CSS:
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] .h-flexsetsdisplay: flex
- Additional Classes:
.h-flex-column, .h-flex-row, .h-cell, .h-equal-sizing, .h-space-between, .h-space-around, .h-center, .h-vertical-center, .h-baseline, .h-start, .h-end, .h-top, .h-bottom, .h-stretch
Flex Cell
.h-flex.h-cell sets flex: 1, which is equivalent to flex: 1 0px. It makes the flex item flexible and sets the flex basis to zero, resulting in an item that receives the specified proportion of the remaining space.
flex: 1
flex: 1
flex: 1
flex: 2
<div class="h-flex h-cell">
<div class="h-highlight-block m-x-l -dark"><p>flex: 1</p></div>
<div class="h-highlight-block m-x-l -dark"><p>flex: 1</p></div>
<div class="h-highlight-block m-x-l -dark"><p>flex: 1</p></div>
<div class="h-highlight-block m-x-l -dark" style="flex: 2;"><p>flex: 2</p></div>
</div>Equal Sizing
flex-grow: 1
flex-grow: 1
flex-grow: 1
flex-grow: 1
<div class="h-flex h-equal-sizing">
<div class="h-highlight-block m-r-l -dark"><p>flex-grow: 1</p></div>
<div class="h-highlight-block m-r-m -dark"><p>flex-grow: 1</p></div>
<div class="h-highlight-block m-l-m -dark"><p>flex-grow: 1</p></div>
<div class="h-highlight-block m-l-l -dark"><p>flex-grow: 1</p></div>
</div>Horizontal Positioning
Space-Between
space-between
space-between
<div class="h-flex h-flex-row h-space-between">
<div class="h-highlight-block -dark h-width-20"><p>space-between</p></div>
<div class="h-highlight-block -dark h-width-40"><p>space-between</p></div>
</div>Space-Around
space-around
space-around
<div class="h-flex h-flex-row h-space-around">
<div class="h-highlight-block -dark h-width-20"><p>space-around</p></div>
<div class="h-highlight-block -dark h-width-20"><p>space-around</p></div>
</div>Center (X-Axis)
.h-flex-row.h-center
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
<div class="h-flex h-flex-row h-center">
<div class="h-highlight-block -dark h-width-40">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
</div>Start / End
.h-flex-row[.h-start, .h-end]
h-end
<div class="h-flex h-flex-row h-end">
<div class="h-highlight-block -dark h-width-40">
<p>h-end</p>
</div>
</div>Vertical Positioning
.h-top, .h-bottom, .h-vertical-center, .h-baseline
Center (Y-Axis)
.h-flex-row.h-vertical-center
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
center
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
<div class="h-flex h-flex-row h-vertical-center">
<div class="h-highlight-block h-width-30 -dark">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
<div class="h-highlight-block -dark h-width-30 m-x-xl">
<p>center</p>
</div>
<div class="h-highlight-block -dark h-width-30">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
</div>Baseline
.h-flex-row.h-baseline
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
baseline
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
<div class="h-flex h-flex-row h-baseline">
<div class="h-highlight-block h-width-30 -dark">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
<div class="h-highlight-block -dark h-width-30 m-x-xl">
<p>baseline</p>
</div>
<div class="h-highlight-block -dark h-width-30">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
</div>Stretch
.h-flex-row.h-stretch
stretch
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
<div class="h-flex h-flex-row h-stretch">
<div class="h-highlight-block -dark">
<p>stretch</p>
</div>
<div class="h-highlight-block">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
<div class="h-highlight-block -dark">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
</div>Flex-Wrap
.h-flex-row.h-wrap Wrap items to the next line if they don't fit in the container.
h-wrap
h-wrap
h-wrap
h-wrap
h-wrap
<div class="h-flex h-flex-row h-wrap">
<div class="h-highlight-block h-width-30 -dark"><p>h-wrap</p></div>
<div class="h-highlight-block h-width-30 -dark"><p>h-wrap</p></div>
<div class="h-highlight-block h-width-30 -dark"><p>h-wrap</p></div>
<div class="h-highlight-block h-width-30 -dark"><p>h-wrap</p></div>
<div class="h-highlight-block h-width-30 -dark"><p>h-wrap</p></div>
<div class="h-highlight-block h-width-30 -dark"><p>h-wrap</p></div>
</div>Change Gap Sizes
Use T-Shirt sizes or numbers for the gaps just like for spacings, see general Spacing Documentation.
.h-flex[.gap-xxs/.gap-4, .gap-xs/.gap-8, .gap-s/.gap-16, etc.]
Examples:
.gap-xs / .gap-8
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
.gap-m / .gap-24
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
.gap-xl / .gap-48
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
Extra Styling
Column Divider
.h-flex-row.h-flex-divider
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
Lorem ipsum dolor sit amet, consetetur sadipscing elitr.
<div class="h-flex h-flex-row h-flex-divider">
<div class="h-flex-item h-width-50 p-l">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
<div class="h-flex-item h-width-50 p-l">
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr.</p>
</div>
</div>