flexbox

O novo modo de layout flexbox está pronto para redefinir como fazemos layouts com CSS. Infelizmente a especificação mudou bastante recentemente, então ele está implementado de forma diferente em diversos navegadores. Ainda assim, eu gostaria de compartilhar alguns exemplos para que você saiba o que está por vir. Esses exemplos só funcionam em alguns navegadores que utilizam a última versão do padrão.

Há vários recursos desatualizados sobre flexbox por aí. Se você quiser saber mais sobre Flexbox, comece aqui para aprender como identificar se o recurso é atual ou não. Eu também escrevi um artigo detalhado com a última versão do padrão.

Há muito mais coisas que você pode fazer com flexbox; estes são apenas alguns exemplos para te dar uma ideia:

Layout simples com Flexbox

.container {
  display: -webkit-flex;
  display: flex;
}
nav {
  width: 200px;
}
.flex-column {
  -webkit-flex: 1;
          flex: 1;
}
<div class="container">
<div class="flex-column">
<section>

Flexbox é tão fácil!

</section>
<section>

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus imperdiet, nulla et dictum interdum, nisi lorem egestas odio, vitae scelerisque enim ligula venenatis dolor. Maecenas nisl est, ultrices nec congue eget, auctor vitae massa. Fusce luctus vestibulum augue ut aliquet. Mauris ante ligula, facilisis sed ornare eu, lobortis in odio. Praesent convallis urna a lacus interdum ut hendrerit risus congue. Nunc sagittis dictum nisi, sed ullamcorper ipsum dignissim ac. In at libero sed nunc venenatis imperdiet sed ornare turpis. Donec vitae dui eget tellus gravida venenatis. Integer fringilla congue eros non fermentum. Sed dapibus pulvinar nibh tempor porta. Cras ac leo purus. Mauris quis diam velit.

</section>
</div>

Layout simpático com Flexbox

.container {
  display: -webkit-flex;
  display: flex;
}
.initial {
  -webkit-flex: initial;
          flex: initial;
  width: 200px;
  min-width: 100px;
}
.none {
  -webkit-flex: none;
          flex: none;
  width: 200px;
}
.flex1 {
  -webkit-flex: 1;
          flex: 1;
}
.flex2 {
  -webkit-flex: 2;
          flex: 2;
}
<div class="initial">

Terei 200px de largura enquanto houver espaço, mas diminuirei para 100px de largura caso não haja espaço, mas não menos.

</div>
<div class="none">

Terei sempre 200px de largura, nada me afetará.

</div>
<div class="flex1">

Vou ocupar 1/3 da largura restante.

</div>
<div class="flex2">

Vou ocupar 2/3 da largura restante.

</div>

Centralização com Flexbox

.vertical-container {
  height: 300px;
  display: -webkit-flex;
  display:         flex;
  -webkit-align-items: center;
          align-items: center;
  -webkit-justify-content: center;
          justify-content: center;
}
<div class="vertical-container">
<div>

Finalmente, é muito simples centralizar um elemento verticalmente com CSS!

</div>
</div>
  • Creative Commons License