ol要素のstart属性を使わずにCSSで番号を途中から振る方法
ol要素のstart属性を使わずに、CSSで番号を途中から振る方法を紹介します。
番号付きリストで「第10位以降のランキング」など、途中から番号を振るケースは少なくないと思いますので、ご活用頂ければ幸いです。
1.基本
ol要素を使えば番号付きリストを作成できます。
HTML
<ol>
<li>あああ</li>
<li>いいい</li>
<li>ううう</li>
</ol>
実行結果
- あああ
- いいい
- ううう
ol要素にstart属性を使えば、番号を途中から割り振ることもできます。
例えば、次のようにstart属性に「5」を設定すれば、番号付きリストを「5」から開始することができます。
HTML
<ol start="5">
<li>あああ</li>
<li>いいい</li>
<li>ううう</li>
</ol>
実行結果
- あああ
- いいい
- ううう
ただし、このstart属性はHTMLあるいはXHTML仕様で非推奨あるいは廃止となっているので、できればというか、start属性は使いたくないところです。
追記:HTML5では非推奨でなくなっています(HTML4.01は非推奨)。失礼致しました。
2.ol要素のstart属性を使わずに番号を途中から振る
ol要素のstart属性を使わずに番号を途中から振るには、CSSのcounter-reset/counter-incrementプロパティを利用します。
プロパティの基本的な使い方については改めて紹介したいと思いますので、ここではstart属性の代替案のみ掲載しておきます。
HTML
<ol>
<li>あああ</li>
<li>いいい</li>
<li>ううう</li>
</ol>
CSS
ol {
counter-reset: item [開始値-1];
}
li {
display: block;
}
li:before {
content: counter(item) ". ";
counter-increment: item;
}
実行結果は以下のサンプルをどうぞ。
次のように、[開始値-1] の部分に「4」を設定すれば、1項のサンプルで「start="5"」をつけたものと同じ振舞いになります。
ol {
counter-reset: item 4;
}
…後略…
3.他の要素を使って途中から番号を割り振る
counter-reset/counter-incrementプロパティは他の要素で利用することもできます。
以下はh3要素に番号を割り振ったときのサンプルです。
CSS
.top {
counter-reset: section 4;
}
h3 {
counter-increment: section;
}
h3:before {
content: counter(section) ". ";
}
HTML
<h3 class="top">あああ</h3>
<h3>いいい</h3>
<h3>ううう</h3>
こちらもサンプルを用意しました。「いきなりh3はおかしい」というツッコミはなしで(笑)。
counter-resetプロパティの「4」を削除すれば「1」から開始します。
4.対応ブラウザ
Firefox/Google Chrome/Safari/Opera/IE8以降で動作することを確認しています。
- YouTube動画にキャプションをつけてテキストを回り込ませる方法
- 画像を下揃えにしてテキストを回り込ませる方法
- style要素にCSSの擬似要素は記述可能か?
- position:relativeを設定すると他の要素がずれる場合の対処
- CSSでタブ切り替えする方法
- :target擬似クラスのまとめ
- CSSでヘッダを固定したスクロールテーブルを作る方法
- レスポンシブウェブデザインで画像を縮小する方法
- disabledなボタンのhoverのスタイルを無効にする方法
- HTML要素を別の要素を基点にしてCSSで絶対配置する方法
- :not擬似クラスでCSS3のサポートをチェックする方法
- :checked擬似クラスでチェックボックスに連動して要素を表示させる方法
- ol要素の入れ子で親の番号を子に割り当てる方法
- チェックボックスやラジオボタンを大きくする方法
- CSSで中央に配置する方法