Flexbox - lidt CSS magi!

Her på siden arbejder jeg med simple Flexbox løsninger på helt almindelige CSS problematikker.

Spalter med samme højde

Vi begynder med "spalter med samme højde", en CSS opgave der altid har givet mange søvnløse nætter til CSS folket.
Med Flexbox er det lige pludselig blevt nemt og lige til.
- alle moderne browsere og IE10+

Pariatur minima quisquam itaque autem posuere suspendisse fuga, mus bibendum conubia aute odit qui magnam lobortis cursus, non est pellentesque? Vehicula senectus, pharetra accusantium cillum voluptatibus ut luctus egestas molestias ullam aperiam elit eleifend nisi vel quos, netus consequat voluptas, hac nostrum provident tempore, ab proin sodales pellentesque eius sapien officiis nunc?.

Pariatur minima quisquam itaque autem posuere suspendisse fuga, mus bibendum conuillum voluptatibus ut luctus egestas molestias ullam aperiam elit eleifend nisi vel quos, ab proin sodales pellentesque eius sapien officiis nunc? Commodi eos iure pariatur qui eget donec. Dapibus.

Vehicula senectus, pharetra magnis sodales nemo sequi. Error, lorem in, commodi dolorem quos molestie. Accusantium! Turpis? Nonummy adipiscing aute velit, habitant nam s pellentesque eius sapien officiis nunc? Pariatur minima quisquam itaque autem posuere suspendisse fuga, mus bibendum conubia aute odit qui magnam lobortis cupiditate culpa quod, in, commodi dolorem estas molestias ullam aperiam elit eleifend nisi vel quos, netus consequat voluptas, hac nostrum provident tempore, ab proin sodales pellentesque eius sapien officiis nunc? Commodi eos iure pariatur qui eget donec. Dapibus.

<div class="flex-container">
<div>
<p>...</p>
</div>
<div>
<p>...</p>
</div>
<div>
<p>...</p>
</div>
</div>

.flex-container {
display: flex;
margin: 0 auto;
width: 80%;
background: #666;
}
.flex-container > div {
flex: 1;
background: #ddd;
margin: 0 1em 0 0;
padding: 1em;
}
.flex-container > div:last-child {
margin-right: 0;
}

.flex-container begynder vi med at fortælle, at vi nu går i Flex-mode ved at tilføje: display: flex;
På spalterne: .flex-container > div angiver vi, at de skal have samme bredde ved hjælp af flex: 1
Resten er bare almindelig CSS.

Det der gør denne Flexbox løsning endnu smartere er, at du kan tilføje lige så mange spalter uden at ændre i CSS'en.
- nu med 4 spalter

Pariatur minima quisquam itaque autem posuere suspendisse fuga, mus bibendum conuillum voluptatibus ut luctus egestas molestias ullam aperiam elit eleifend nisi vel quos, ab proin sodales pellentesque eius sapien officiis nunc? Commodi eos iure pariatur qui eget donec. Dapibus.

Vehicula senectus, p autem posuere suspendisse fuga, mus bibendum conubia aute odit qui magnam lobortis cupiditate culpa quod, in, commodi dolorem estas molestias ullam aperiam elit eleifend nisi vel quos, netus consequat voluptas, hac nostrum provident tempore, ab proin sodales pellentesque eius sapien officiis nunc? Commodi eos iure pariatur qui eget donec. Dapibus.

Pariatur minima quisquam itaque autem posuere suspendisse fuga, mus bibendum conuillum voluptatibus ut luctus egestas molestias ullam aperiam elit eleifend nisi vel quos, ab proin sodales pellentesque eius sapien officiis nunc? Commodi eos iure pariatur qui eget donec. Dapibus.

Mus bibendum conuillum voluptatibus ut luctus egestas molestias ullam aperiam elit eleifend nisi vel quos, ab proin sodales pellentesque eius sapien officiis nunc? Commodi eos iure pariatur qui eget donec. Dapibus.

Ændre rækkefølge på elementer

Der kan være mange grunde til at ændre HTML-elementernes visuelle rækkefølge, uden at ville ændre HTML-strukturen.
Når man arbejder med Responsive webdesign via CSS media queries, kan designet optræde meget forskelligt, alt efter hvilken skærmstørrelse hjemmesiden vises på. Elementer skjules og vises alt efter om det er en desktop, tablet eller smartphone visning, og med flexbox "order" kan vi nu også ændre rækkefølgen.
- alle moderne browsere og IE10+

(Nr. 1)

(Nr. 2)

(Nr. 3)

<div class="flex-container">
<div>
<p>(Nr. 1)</p>
</div>
<div>
<p>(Nr. 2)</p>
</div>
<div>
<p>(Nr. 3)</p>
</div>
</div>

CSS der ændre rækkefølgen, ser ud som nedenstående:

.flex-container > div:nth-child(1) {
  background: red;
  order: 3;
/* Nu virker =".flex-container > div:last-child" ikke længere. Så derfor nedenstående! */
  margin-right: 0;
  margin-left: 1em;
}
.flex-container > div:nth-child(2) {
  background: blue;
  order: 1;
}
.flex-container > div:nth-child(3) {
  background: black;
  color: #fff;
  order: 2;
}

Her er det selvfølgelig order: X; der bestemmer rækkefølge.

Flexbox grid

Et super grid i flexbox lige til at benytte i sine webdesign.
http://flexboxgrid.com/