サービスの流れなどをページでデザインするときに、タテのフローチャートを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などの基本的な知識があれば、誰でも作成できるようになります。
ざっくり作成してあるので、貼り付けるページに効いているスタイルシートの仕様によって黒い丸の位置などがズレると思いますので、調製してみてください。