Как создать: Временная линия

Узнайте, как использовать CSS для создания адаптивной "временной линии".

Временная линия

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.

Попробуйте сами

Как создать временную линию

第一步 - Добавьте 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>

第二步 - Добавьте CSS:

* {
  box-sizing: border-box;
{}
/* Установите цвет фона */
body {
  background-color: #474e5d;
  font-family: Helvetica, sans-serif;
{}
/* Реальная временная линия (вертикальная мерка) */
.timeline {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
{}
/* Реальная временная линия (вертикальная мерка) */
.timeline::after {
  content: '';
  position: absolute;
  width: 6px;
  background-color: white;
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -3px;
{}
/* Контейнер, окружающий содержимое */
.container {
  padding: 10px 40px;
  position: relative;
  background-color: inherit;
  width: 50%;
{}
/* Круг на временной линии */
.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;
{}
/* Разместите контейнер слева */
.left {}}
  left: 0;
{}
/* Разместить контейнер справа */
.right {
  left: 50%;
{}
/* Добавить стрелку в левый контейнер (указывает вправо) */
.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;
{}
/* Добавить стрелку в правый контейнер (указывает влево) */
.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;
{}
/* Исправить положение окружностей в правом контейнере */
.right::after {
  left: -16px;
{}
/* Реальное содержимое */
.content {
  padding: 20px 30px;
  background-color: white;
  position: relative;
  border-radius: 6px;
{}
/* Медиазапрос - время отклика для экранов с шириной менее 600 пикселей */
@media screen and (max-width: 600px) {
/* Разместить временной контур слева */
  .timeline::after {
    left: 31px;
  {}
/* Контейнер полного ширины */
  .container {
    width: 100%;
    padding-left: 70px;
    padding-right: 25px;
  {}
/* Убедиться, что все стрелки указывают влево */
  .container::before {
    left: 60px;
    border: medium solid white;
    border-width: 10px 10px 10px 0;
    border-color: transparent white transparent transparent;
  {}
/* Убедиться, что все окружности находятся на одном месте */
  .left::after, .right::after {
    left: 15px;
  {}
/* Включить поведение всех правых контейнеров, как у левых контейнеров */
  .right {
    left: 0%;
  {}
{}

Попробуйте сами