110

HTML仕様では、IDにピリオド(。)を使用できます。

<img id="some.id" />

ただし、CSSIDセレクタルールを使用すると正しく一致しません。

#some.id { color: #f00; }

IDセレクターのCSS仕様では、このケースについては言及されていません。だから私はそれがタグ名とクラスセレクターの組み合わせを使用していると思いますか?たとえば、のCSSルールは、のようなクラス名を持つa.classNameすべてのアンカータグ()に適用されます。<a>className<a class="className"></a>

ピリオドを含むIDでHTML要素を参照する外部CSSファイルルールを持つことは可能ですか?

CSS仕様では、CSSの「識別子」に有効な文字としてピリオドが含まれていないことが指定されているため、私は期待していません。では、これはHTMLとCSSの仕様の根本的な不一致ですか?別の種類のCSS選択を使用する唯一の方法はありますか?私がこれを確認または否定するよりも賢い人はいますか?

(単純化するためにHTML id属性からピリオドを削除しますが、これはシステムで生成されたIDであるため、この場合は変更できません。)

4

3 に答える 3

218

仕様をさらに掘り下げた後、CSS 仕様では、ほとんどの言語と同様にバックスラッシュ ( \) のエスケープが許可されていることがわかりました。

したがって、私の例では、次のルールが一致します。

#some\.id {
  color: #f00;
}
于 2012-09-07T00:12:43.007 に答える
27

次のように属性セレクターを使用することもできます。

[id='some.id'] {
  color: #f00;
}
于 2014-08-06T18:10:55.923 に答える