CSS

CSSでフローチャート(タテ)を作成する方法

サービスの流れなどをページでデザインするときに、タテのフローチャートをCSSだけで作ってみたいなと思ったので、完成したものをここでシェアさせていただきます。ご自由にコピペしてお使いください。

CSSでフローチャート(タテ)を作成する方法

ボタンで表示を切り替えてご覧ください。

See the Pen
flowchart02
by kenichi (@ken81)
on CodePen.

フローチャートのタイトルがあって、その下に説明文を入れる形式にしました。説明文を入れる代わりに画像を配置しても良いですね。

HTML

<ol>
  <li><h2>お問い合わせ・ご連絡</h2>
    <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
  </li>
  <li><h2>ご面談・事前ヒアリング</h2>
    <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p></li>
  <li><h2>ご提案とお見積もり提示</h2>
    <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p></li>
  <li><h2>ご契約</h2>
    <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p></li>
<ol>

CSS

ol{
  list-style: none;
  border-left: 2px dashed;
  padding-left: 0;
}
ol li{
  margin-left: 2em;
  position: relative;
}
ol li h2{
  margin-bottom: 0;
}
ol li p{
  margin-top: .3em;
}
ol li:before{
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #000;
  position: absolute;
  left: calc(-2em - 6px);
  top: .7em;
}
ol li:after{
  content: "";
  border-bottom: 1px solid;
  width: 1.5em;
  background: #000;
  position: absolute;
  top: 1em;
  left: -2em; 
}

これは、ol要素で作成したものです。もしかしたら、リスト要素の中に見出しとパラグラフを入れるのはマークアップとして変かもしれないですね。普通にdiv要素で作成したい場合は、下記のようにしてください。

See the Pen
flowchart03
by kenichi (@ken81)
on CodePen.

HTML

<div class="flowchart">
  <h2>お問い合わせ・ご連絡</h2>
  <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
  
  <h2>ご面談・事前ヒアリング</h2>
  <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
  
  <h2>ご提案とお見積もり提示</h2>
  <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
  
  <h2>ご契約</h2>
  <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
</div>

CSS

.flowchart{
  margin-left: .5em;
  border-left: 2px dashed;
}
.flowchart h2{
  position: relative;
  margin-left: 2em;
  margin-bottom: 0;
}
.flowchart p{
  margin-top: .3em;
  margin-left: 3em;
}
.flowchart h2:before{
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #000;
  position: absolute;
  left: calc(-2em - 6px);
  top: .5em;
}
.flowchart h2:after{
  content: "";
  border-bottom: 1px solid;
  width: 1.5em;
  background: #000;
  position: absolute;
  top: .7em;
  left: -2em; 
}

黒い丸のところをアイコンで表示させるという方法もあります。

See the Pen
flowchart03
by kenichi (@ken81)
on CodePen.

HTML

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css">
<div class="flowchart">
  <h2>お問い合わせ・ご連絡</h2>
  <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
  
  <h2>ご面談・事前ヒアリング</h2>
  <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
  
  <h2>ご提案とお見積もり提示</h2>
  <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
  
  <h2>ご契約</h2>
  <p>説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文、説明文</p>
</div>

CSS

.flowchart{
  margin-left: .5em;
  border-left: 2px dashed;
}
.flowchart h2{
  position: relative;
  margin-left: 2em;
  margin-bottom: 0;
}
.flowchart p{
  margin-top: .3em;
  margin-left: 3em;
}
.flowchart h2:before{
  font-family: Font Awesome\ 5 Free;
  font-weight: 900;
  content: "\f358";
  position: absolute;
  left: -2.5em;
  top: .2em;
  width: 1em;
  height: 1em;
  border-radius: .5em;
  background: #fff;
}
.flowchart h2:after{
  content: "";
  border-bottom: 1px solid;
  width: 1em;
  background: #000;
  position: absolute;
  top: .8em;
  left: -1.5em; 
}

positionプロパティ、疑似要素、paddingやmarginなどの基本的な知識があれば、誰でも作成できるようになります。

ざっくり作成してあるので、貼り付けるページに効いているスタイルシートの仕様によって黒い丸の位置などがズレると思いますので、調製してみてください。

最近の記事

  1. CSS

    レスポンシブウェブデザインの基本|メディアクリエリの設定
  2. CSS

    要素の配置が簡単に決まるFlexboxの使い方
  3. CSS

    CSS|中央寄せが効かないときは・・・
  4. CSS

    擬似クラス「:first-child」「:last-child」はどうして効かな…
  5. WordPress

    WordPressの立ち上げからサイト構築までの初期手順
PAGE TOP