CSSのクラス名にはどのような制限がありますか?

CSSのクラス名にはどのような制限がありますか?

CSSのクラス名にはどのような制限がありますか?

Webページのスタイルを設定する際に欠かせないCSSですが、クラス名やID名などを自由に設定できる一方で、いくつかのルールに従う必要があります。ルールに違反したクラス名は、ブラウザで正しく解釈されず、意図したスタイルが適用されない可能性があります。そこで今回は、CSSのクラス名に関する制限について詳しく解説していきます。

CSSの識別子に関する基本ルール

CSSにおいて、要素名、クラス、IDなどを含む「識別子」は、以下のルールに従って命名する必要があります。

  • 使用できる文字は、半角英数字(a-z、A-Z、0-9)、ハイフン(-)、アンダースコア(_)、U+0080以上のUnicode文字のみです。
  • 識別子は、数字、2つ以上のハイフン、ハイフンの直後の数字で始めることはできません。
  • 大文字と小文字は区別されます。(例:class="sample"とclass="Sample"は異なるものとして扱われます)

これらのルールをまとめると、以下のテーブルのようになります。

ルール 説明 有効な例 無効な例
使用可能な文字 半角英数字、ハイフン、アンダースコア、U+0080以上のUnicode文字 sample, sample-1, _sample, サンプル 1sample, --sample, sample--, sample&
開始文字の制限 数字、2つ以上のハイフン、ハイフンの直後の数字は不可 sample, sample-1, _sample 1sample, --sample, -1sample

なぜこれらの制限があるのか?

これらの制限は、CSSとHTMLの解釈を明確にし、予期しないエラーを防ぐために設けられています。例えば、数字で始まるクラス名は、CSSの文法と競合する可能性があります。また、ハイフンで始まるクラス名は、将来的なCSSの仕様変更に備えて避けるべきとされています。

具体的なHTMLコード例

以下は、有効なクラス名と無効なクラス名を使用したHTMLコード例です。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>クラス名検証</title>
  <style>
    .sample { /* 有効なクラス名 */
      color: blue;
    }
    .sample-1 { /* 有効なクラス名 */
      font-size: 1.2em;
    }
    /* .1sample { 無効なクラス名 */ 
    /*  color: red; 
    /* } */
  </style>
</head>
<body>
  <p class="sample">このテキストは青色になります。</p>
  <p class="sample-1">このテキストは少し大きくなります。</p>
  <p class="1sample">このテキストは赤色になりません。</p>
</body>
</html>

まとめ

この記事では、CSSのクラス名に関する制限と、その理由について解説しました。これらのルールに従うことで、Webページのスタイルを正しく、そして安全に適用することができます。CSSを学習する際には、これらのルールをしっかりと理解しておきましょう。

参考資料

よくある質問

Q1. クラス名に日本語は使える?

A1. はい、使用できます。U+0080以上のUnicode文字は使用可能です。

Q2. クラス名にスペースは使える?

A2. いいえ、使用できません。スペースは複数のクラスを指定する際に使用します。

Q3. クラス名の大文字と小文字は区別される?

A3. はい、区別されます。class="sample"とclass="Sample"は異なるものとして扱われます。

その他の参考記事:jquery eq 取得