Hoe te maken: tijdlijn

Leer hoe je een responsieve 'tijdlijn' met CSS maakt.

Tijdlijn

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.

Try it yourself

Hoe een tijdlijn te maken

Eerste stap - Voeg HTML toe:

<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>

Tweede stap - Voeg CSS toe:

* {
  box-sizing: border-box;
{}
/* Stel achtergrondkleur in */
body {
  background-color: #474e5d;
  font-family: Helvetica, sans-serif;
{}
/* Echt tijdlijn (verticale schaal) */
.timeline {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
{}
/* Echt tijdlijn (verticale schaal) */
.timeline::after {
  content: '';
  position: absolute;
  width: 6px;
  background-color: white;
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -3px;
{}
/* Container om inhoud te omkleden */
.container {
  padding: 10px 40px;
  position: relative;
  background-color: inherit;
  width: 50%;
{}
/* Cirkel op de tijdlijn */
.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;
{}
/* Plaats de container aan de linkerkant */
.left {
  left: 0;
{}
/* Plaats de container aan de rechterkant */
.right {
  left: 50%;
{}
/* Voeg een pijl toe aan de linker container (wijst naar rechts) */
.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;
{}
/* Voeg een pijl toe aan de rechter container (wijst naar links) */
.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;
{}
/* Repareer de positie van de cirkel in de rechter container */
.right::after {
  left: -16px;
{}
/* Echt inhoud */
.content {
  padding: 20px 30px;
  background-color: white;
  position: relative;
  border-radius: 6px;
{}
/* Media query - responsieve tijdlijn voor schermen met een breedte kleiner dan 600 pixels */
@media screen and (max-width: 600px) {
/* Plaats de tijdlijn aan de linkerkant */
  .timeline::after {
    left: 31px;
  {}
/* Volledige breedte container */
  .container {
    width: 100%;
    padding-left: 70px;
    padding-right: 25px;
  {}
/* Zorg ervoor dat alle pijlen naar links wijzen */
  .container::before {
    left: 60px;
    border: medium solid white;
    border-width: 10px 10px 10px 0;
    border-color: transparent white transparent transparent;
  {}
/* Zorg ervoor dat alle cirkels op dezelfde positie zijn */
  .left::after, .right::after {
    left: 15px;
  {}
/* Maak het gedrag van alle rechter containers vergelijkbaar met de linker container */
  .right {
    left: 0%;
  {}
{}

Try it yourself