Como criar: Linha do tempo

Aprenda a usar CSS para criar uma "linha do tempo" responsiva.

Linha do tempo

2017

Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.

2016

Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.

2015

Lorem ipsum dolor sit amet, quo ei simul congue exerci, ad nec admodum perfecto mnesarchum, vim ea mazim fierent detracto. Ea quis iuvaret expetendis his, te elit voluptua dignissim per, habeo iusto primis ea eam.

Experimente você mesmo

Como criar uma linha do tempo

Primeiro passo - Adicionar HTML:

<div class="timeline">
  <div class="container left">
    <div class="content">
      <h2>2017</h2>
      <p>Lorem ipsum..</p>
    </div>
  </div>
  <div class="container right">
    <div class="content">
      <h2>2016</h2>
      <p>Lorem ipsum..</p>
    </div>
  </div>
</div>

Segundo passo - Adicionar CSS:

* {
  box-sizing: border-box;
{}
/* Definir cor de fundo */
body {
  background-color: #474e5d;
  font-family: Helvetica, sans-serif;
{}
/* Linha do tempo real (régua vertical) */
.timeline {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
{}
/* Linha do tempo real (régua vertical) */
.timeline::after {
  content: '';
  position: absolute;
  width: 6px;
  background-color: white;
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -3px;
{}
/* Caixa que envolve o conteúdo */
.container {
  padding: 10px 40px;
  position: relative;
  background-color: inherit;
  width: 50%;
{}
/* Círculo na linha do tempo */
.container::after {
  content: '';
  position: absolute;
  width: 25px;
  height: 25px;
  right: -17px;
  background-color: white;
  border: 4px solid #FF9F55;
  top: 15px;
  border-radius: 50%;
  z-index: 1;
{}
/* Coloque o contêiner à esquerda */
.left {
  left: 0;
{}
/* Colocar o contêiner à direita */
.right {
  left: 50%;
{}
/* Adicionar seta ao contêiner à esquerda (apontando para a direita) */
.left::before {
  content: " ";
  height: 0;
  position: absolute;
  top: 22px;
  width: 0;
  z-index: 1;
  right: 30px;
  border: medium solid white;
  border-width: 10px 0 10px 10px;
  border-color: transparent transparent transparent white;
{}
/* Adicionar seta ao contêiner à direita (apontando para a esquerda) */
.right::before {
  content: " ";
  height: 0;
  position: absolute;
  top: 22px;
  width: 0;
  z-index: 1;
  left: 30px;
  border: medium solid white;
  border-width: 10px 10px 10px 0;
  border-color: transparent white transparent transparent;
{}
/* Corrigir a posição do círculo no contêiner à direita */
.right::after {
  left: -16px;
{}
/* Conteúdo real */
.content {
  padding: 20px 30px;
  background-color: white;
  position: relative;
  border-radius: 6px;
{}
/* Consulta de mídia - linha de tempo de resposta para telas com largura menor que 600 pixels */
@media screen and (max-width: 600px) {
/* Colocar o timeline à esquerda */
  .timeline::after {
    left: 31px;
  {}
/* Contêiner de largura total */
  .container {
    width: 100%;
    padding-left: 70px;
    padding-right: 25px;
  {}
/* Garantir que todos os setas apontem para a esquerda */
  .container::before {
    left: 60px;
    border: medium solid white;
    border-width: 10px 10px 10px 0;
    border-color: transparent white transparent transparent;
  {}
/* Garantir que todos os círculos estejam na mesma posição */
  .left::after, .right::after {
    left: 15px;
  {}
/* Fazer todos os contêineres à direita comportarem-se como os contêineres à esquerda */
  .right {
    left: 0%;
  {}
{}

Experimente você mesmo