Widely available YES。主要ブラウザで広く対応済み。本番利用を推奨。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
1
12
1.5
3
18
1
その他

counter-increment は CSS のプロパティで、指定された値によって CSS カウンターの値を増加または減少させたり、すべてのカウンターまたは個々のカウンターが変化することを防いだりするためのプロパティです。

2
12
1
3
18
1
CSS プロパティ
list-item
28
12
1
9
28
9
none
2
12
1
3
18
2
その他

counter-reset は CSS のプロパティで、名前付きの CSS カウンターを作成し、指定された値で初期化します。要素の数値から 1 までカウントアップするカウンター、および要素の数値から 1 までカウントダウンするカウンターを作成することができます。

2
12
1
3
18
1
CSS プロパティ
list-item
28
12
1
9
28
9
none
2
12
1
3
18
2
reset does not affect siblings
実験的

現在の要素 (兄弟要素ではない) のカウンターをリセットします。

82
その他

counter() は CSS の関数で、指定された名前付きカウンターの現在値があれば、その文字列を返します。

1
12
1
3
18
1
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 2件
制限事項
  • このブラウザでは部分的にしか実装されていません
実装メモ
  • 暗黙的な `list-item` カウンタの初期値をオーバーライドしても、リスト項目のデフォルトのマーカー文字列 (`::marker`) が生成されるときには効果がありません。 バグ 338233131 を参照してください。
注釈 2件
制限事項
  • このブラウザでは部分的にしか実装されていません
実装メモ
  • 暗黙的な `list-item` カウンタの初期値をオーバーライドすると、コンテンツの生成に使用される `counter()` 関数の値が不正確になります。これは、この関数が完全に実装されていないためです。 バグ 260436 を参照してください。
注釈 2件
制限事項
  • このブラウザでは部分的にしか実装されていません
実装メモ
  • 暗黙的な `list-item` カウンタの初期値をオーバーライドしても、リスト項目のデフォルトのマーカー文字列 (`::marker`) が生成されるときには効果がありません。 バグ 338233131 を参照してください。
注釈 2件
制限事項
  • このブラウザでは部分的にしか実装されていません
実装メモ
  • 暗黙的な `list-item` カウンタの初期値をオーバーライドすると、コンテンツの生成に使用される `counter()` 関数の値が不正確になります。これは、この関数が完全に実装されていないためです。 バグ 260436 を参照してください。

基本構文

CSS
body {
  counter-reset: chapter;
}
h2::before {
  counter-increment: chapter;
  content: 'Chapter ' + counter(chapter);
}

ライブデモ

chapter number

CSS chapter number demo.

プレビュー全画面表示

nestedcounter-

CSS nestedcounter- demo.

プレビュー全画面表示

customnumber

CSS customnumber demo.

プレビュー全画面表示

実務での使いどころ

  • 技術文書の自動章番号付け

    見出し要素にCSSカウンターを適用し、章・節の番号を自動的に付与・更新できます。コンテンツの追加・削除時も自動的に再番号付けされます。

注意点

  • CSSカウンターはDOMの順序に基づいて計算されるため、要素の視覚的な並び替え(order プロパティ等)とは一致しない場合があります。

アクセシビリティ

  • CSSカウンターで生成された番号はスクリーンリーダーに読み上げられることがあります。HTMLの ol/li 要素との重複した番号付けが発生しないよう注意してください。