olタグのリストに、自動で付与される番号を装飾する方法をご紹介します。
この方法なら順番の入れ替えがあっても、柔軟に対応できるリストが作れます。
サンプル
主に使うプロパティ
counter-reset: カウンター名 番号の初期値; | カウンター名と番号の初期値を指定します。 番号の初期値のデフォルトは0です。 |
---|---|
content: counter(カウンター名) “カウンターに挿入する文字列”; | カウンターの表示形式を指定します。カウンターの前後に 「””」で囲った文字列が表示されます。 |
counter-increment: カウンター名 増加させる値; | カウンターを増加させる値を指定します。デフォトは1です。 |
CSS
CSSは以下のとおりです。(SCSSで書かれています)
before で番号の背景になるエリアを設定して、after でカウンターの設定を行っています。
また、入れ子の番号リストが存在した時にカウンターと装飾が影響しないよう、.numberクラスがついたol直下のliのみにカウンターを入れるようにしています。
.number {
list-style: none;
counter-reset: circle 0; /* カウンターの初期値を0にセット */
margin:1em;
padding:0 0 0 3em;
& > li {
position:relative;
line-height:1.6;
margin:0 0 1em;
}
& ol {
margin:0.5em 0;
}
& > li:before {
position: absolute;
top: -3px;
left:-3em;
width:2em;
height:2em;
background:#0068b7;
content:"";
display:block;
border-radius:50%;
line-height:1;
}
& > li:after {
content: counter(circle) "."; /* 表示形式を指定 */
counter-increment: circle 1; /* カウンターの値を増加させる */
display: block;
color: #fff;
position: absolute;
top: 5px;
left:-2.4em;
line-height:1;
}
}