html カウンター

HTMLカウンター:CSSを使用したリスト番号のスタイル設定

デフォルトの数字やローマ数字のリストに飽きていませんか?この記事では、CSSカウンターを使用してカスタムリストを作成し、Webページの番号付けと順序付けを完全に制御する方法を詳しく説明します。

目次

  1. CSSカウンターの基礎
  2. 簡単な順序付きリストの作成
  3. ネストされたカウンターと複数レベルのリスト
  4. 高度なカウンターのスタイル設定
  5. CSSカウンターの実際の応用

1. CSSカウンターの基礎

CSSカウンターを使用すると、HTML要素の出現回数を追跡し、その情報をコンテンツに表示できます。これは、リストの番号付け、見出しの自動番号付け、その他の動的な番号付けシステムに役立ちます。

CSSカウンターのプロパティと関数

  • counter-reset: カウンターを作成し、初期値を設定します。
  • counter-increment: 要素が表示されるたびにカウンターの値を増減します。
  • counters(): コンテンツ内でカウンターの値を表示します。

2. 簡単な順序付きリストの作成

counter() 関数を使用して、現在のカウンター値を表示し、簡単な順序付きリストを作成できます。

<ol>
  <li>項目 1</li>
  <li>項目 2</li>
  <li>項目 3</li>
</ol>
ol {
  counter-reset: item; /* カウンター「item」を作成 */
}

li::before {
  counter-increment: item; /* リスト項目ごとにカウンターを1増やす */
  content: counters(item, ".") " "; /* カウンター値とピリオドを表示 */
}

カウンターの開始値、スタイル(数字、アルファベット、ローマ数字など)をカスタマイズできます。

3. ネストされたカウンターと複数レベルのリスト

ネストされたカウンターを作成して、複数レベルのリストを処理できます。各ネストレベルには、独自のカウンタースタイルを設定できます。

<ol>
  <li>項目 1</li>
  <li>項目 2
    <ol>
      <li>項目 2.1</li>
      <li>項目 2.2</li>
    </ol>
  </li>
  <li>項目 3</li>
</ol>
ol {
  counter-reset: section;
  list-style-type: none;
}

li::before {
  counter-increment: section;
  content: counters(section, ".") " ";
}

ol ol {
  counter-reset: subsection;
}

ol ol li::before {
  counter-increment: subsection;
  content: counters(section, ".") "." counters(subsection, ".") " ";
}

4. 高度なカウンターのスタイル設定

@counter-style 規則を使用すると、カウンターの記号、区切り文字、スタイルを定義して、カスタムカウンタースタイルを作成できます。

@counter-style custom-counter {
  system: symbolic;
  symbols: ★ ☆;
  suffix: " ";
}

ul {
  list-style: custom-counter;
}

5. CSSカウンターの実際の応用

CSSカウンターは、次のようなさまざまな目的に使用できます。

  • 記事のタイトル、章番号、コードサンプルなどの要素の番号付けのカスタマイズ
  • 複雑なページレイアウトとナビゲーション構造の実装
  • Webページの視覚的な魅力とユーザーエクスペリエンスの向上

参考資料

CSSカウンターに関するQ&A

Q1: CSSカウンターはすべてのブラウザでサポートされていますか?
A1: はい、CSSカウンターはすべての主要なブラウザでサポートされています。
Q2: CSSカウンターを使用して画像を表示できますか?
A2: いいえ、CSSカウンターはテキストコンテンツの番号付けにのみ使用できます。ただし、background-imageプロパティと組み合わせて、カウンターの横に画像を表示することはできます。
Q3: CSSカウンターとJavaScriptのどちらを使用する必要がありますか?
A3: CSSカウンターは、単純な番号付けタスクに適しており、JavaScriptよりもパフォーマンスに優れています。ただし、複雑なロジックやユーザーインタラクションが必要な場合は、JavaScriptを使用する方が適切な場合があります。