LoginSignup
287
283

More than 3 years have passed since last update.

CSSで見出しタグに連番をつけて「手順書」っぽくする

Last updated at Posted at 2020-06-02

この投稿では見出しタグに連番をふったり、装飾したりして手順をいいかんじに表現する方法を紹介します。

実現したいこと

次のようななんの変哲もないHTMLにスタイルを当てて、

<h1>カレーライスの作り方</h1>

<div class="steps">
  <h2>野菜と肉を切る</h2>
  <p>いい感じの大きさに野菜と肉を切ります。</p>

  <h2>煮込む</h2>
  <p>切った具材を鍋に入れて煮込みます。</p>

  <h2>味付け</h2>
  <p>カレールーなど調味料を入れて完成です。</p>
</div>

下のように各ステップに1,2,3と連番がついた表示になるようにしたいと思います。

CleanShot 2020-06-02 at 12.50.36@2x.png

見出しに連番をつけたり、装飾したりして「手順」を表現する方法

いきなりですが、完成形のCSSを示します。細かい説明はコード内にコメントで書いてあるのでご覧ください。

.steps {
  /* 連番カウンター名の定義 */
  counter-reset: step-counter;
  /* 縦棒との位置関係に必要 */
  position: relative;
  /* 縦棒と連番のためのスペースを左に確保 */
  padding-left: 2rem; /* 連番(1.5rem) + 余白 */
}

/* 縦棒 */
.steps:before {
  content: "";
  /* 幅と色 */
  background-color: #d59533;
  width: 2px;
  /* 位置 */
  position: absolute;
  top: 0.7rem; /* 円のwidthの半分 */
  left: 0.7rem; /* 円のwidthの半分 */
  height: calc(100% - 0.7rem); /* 100% - top */
  /* 連番より後ろに表示するため */
  z-index: 0;
}

.steps > h2 {
  /* 連番カウンターを+1する */
  counter-increment: step-counter;
  /* 連番カウンターを垂直方向に中央揃えで表示する */
  display: flex;
  align-items: center;
}

/* ①②③など連番 */
.steps > h2:before {
  /* 連番カウンターの値を表示する */
  content: counter(step-counter);
  /* フォントと色 */
  background: #d59533;
  color: white;
  font-size: 0.8rem;
  font-weight: normal;
  /* 文字を中央に表示する */
  line-height: 1.5rem;
  text-align: center;
  /* 円で表示する */
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 1.5rem;
  /* .stepsでmargin-left +2rem したぶん左に戻す */
  position: absolute;
  left: 0;
  /* 縦棒より手前に表示するため */
  z-index: 1;
}

どうやって連番を表示しているか?

連番を表示するためにcounter-resetcounter-incrementcontent: counter(step-counter)を使っています。

動作デモ

一応動くデモとしてCodePenを貼っておきます:

See the Pen CSSで見出しに連番をつけたり、装飾したりして「手順」を表現する by suin (@suin) on CodePen.


最後までお読みくださりありがとうございました。Twitterでは、Qiitaに書かない技術ネタなどもツイートしているので、よかったらフォローしてもらえると嬉しいです:relieved:Twitter@suin

287
283
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
287
283