識別子について。
CSSにおける識別子について解説します。
識別子に利用出来る文字。
CSSでは識別子には以下の文字が利用出来ます。
但し、半角数字や半角ハイフンで始まってはいけません(WAP 2.0及びもじら系ブラウザの場合もご覧下さい)。
また、「\」に続けて使用出来ない半角文字やユニコードを十六進数で記述する事も出来ます(エスケープシークェンス)。
- 一意セレクタ(IDセレクタ)のIDにはHTMLの仕様の都合で更に厳しい制限があります。逆に、HTMLの仕様で定められているIDの付け方ではCSSのセレクタに使えなくなる場合があります。HTMLとCSSの双方の仕様を見比べた上で適切なIDを付けて下さい
- 実際問題として、HTML文書に適用するCSSスタイルシートで日本語の識別子が使えるのはクラスセレクタのクラス名くらいしか無いでしょう。
実装上の注意。
全角文字を認識出来ないユーザエージェントもあります。
ネットスケープ 4.xなど、旧式のユーザエージェントで半角英数字と半角ハイフン以外を認識しないものがあります。
特に、ネットスケープでは全角文字が入ったセレクタを使うと、当該セレクタを含むプロパティ定義が無視されてしまいます。
また、オープンウェーヴ社のモバイルブラウザも全角文字のセレクタ(すなわち日本語セレクタ)が認識出来ません。
インターネットエクスプローラの場合。
ウィンドウズ版のインターネットエクスプローラ 6.xまでは、先頭が「_」で始まるプロパティ名を先頭の「_」を取り払ったプロパティ名と認識します。
従って、ウィンドウズ版のインターネットエクスプローラ 6.xまででは「_margin」と「margin」は同義となります。
- これを利用してウィンドウズ版のインターネットエクスプローラ 6.xまででのみ適用したいプロパティを定義する事も可能ですが、明らかにエラーを混入させる行為となります。
- 尚、インターネットエクスプローラ 7.0以降では「_」で始まるプロパティ名をエラーとして扱う事になりました。
また、インターネットエクスプローラ 6.0まででは、クラス名が「_」で始まっている場合、文法エラーと見なし、当該プロパティ定義を全て無視します。
WAP 2.0及びもじら系ブラウザの場合。
WAP 2.0携帯電話のユーザエージェント及びファイヤーフォックスなどもじら系のユーザエージェントでは、「-」で始まるプロパティ名やプロパティ値が定義されております。
これらは、識別子の規定に明らかに反しますが、互換性の無い独自の仕様と言う事で非対応環境では故意にエラーとなるようにしていると考えられます。
- 当サイトでは、もじら系のユーザエージェントでの
-moz-で始まるプロパティ名は当面扱いませんが、WAP 2.0での-wap-で始まるプロパティ名・プロパティ値は収録しております。