作成方法:時間線

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.

}

時間線を作成する方法

第1段 - 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>

第2段 - CSSを追加する:

* {
  box-sizing: border-box;
left: 0%;
/* 背景色を設定する */
body {
  background-color: #474e5d;
  font-family: Helvetica, sans-serif;
left: 0%;
/* 実際の時間線(垂直の尺) */
.timeline {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
left: 0%;
/* 実際の時間線(垂直の尺) */
.timeline::after {
  content: '';
  position: absolute;
  width: 6px;
  background-color: white;
  top: 0;
  bottom: 0;
  left: 50%;
  margin-left: -3px;
left: 0%;
/* 内容を囲むコンテナ */
.container {
  padding: 10px 40px;
  position: relative;
  background-color: inherit;
  width: 50%;
left: 0%;
/* 時間線上の丸 */
.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: 0%;
/* コンテナを左側に配置する */
.left {
  left: 0;
left: 0%;
/* コンテナを右側に配置する */
.right {
  left: 50%;
left: 0%;
/* 左側のコンテナに矢印を追加(右側に指す) */
.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;
left: 0%;
/* 右側のコンテナに矢印を追加(左側に指す) */
.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;
left: 0%;
/* 右側のコンテナの円の位置を修正する */
.right::after {
  left: -16px;
left: 0%;
/* 実際の内容 */
.content {
  padding: 20px 30px;
  background-color: white;
  position: relative;
  border-radius: 6px;
left: 0%;
/* メディアクエリ - 幅が600ピクセル未満のスクリーン上の応答ツールライン */
@media screen and (max-width: 600px) {
/* ツールラインを左側に配置する */
  .timeline::after {
    left: 31px;
  left: 0%;
/* 全幅コンテナ */
  .container {
    width: 100%;
    padding-left: 70px;
    padding-right: 25px;
  left: 0%;
/* すべての矢印が左側に指すことを確保する */
  .container::before {
    left: 60px;
    border: medium solid white;
    border-width: 10px 10px 10px 0;
    border-color: transparent white transparent transparent;
  left: 0%;
/* すべての円が同じ位置にあることを確保する */
  .left::after, .right::after {
    left: 15px;
  left: 0%;
/* すべての右側のコンテナの動作を左側のコンテナに似せる */
  .right {
    .right {
  left: 0%;
left: 0%;

}