CSSは大文字と小文字を区別しないということを随時読み続けますが、このセレクターがあります。
.holiday-type.Selfcatering
これを私のHTMLで使用すると、このようにピックアップされます
<div class="holiday-type Selfcatering">
上記のセレクターをこのように変更すると
.holiday-type.SelfCatering
その後、スタイルはピックアップされません。
誰かが嘘をついている。
CSSは大文字と小文字を区別しないということを随時読み続けますが、このセレクターがあります。
.holiday-type.Selfcatering
これを私のHTMLで使用すると、このようにピックアップされます
<div class="holiday-type Selfcatering">
上記のセレクターをこのように変更すると
.holiday-type.SelfCatering
その後、スタイルはピックアップされません。
誰かが嘘をついている。
回答:
CSSセレクターは通常、大文字と小文字を区別しません。これには、クラスおよびIDセレクターが含まれます。
ただし、HTMLクラス名では大文字と小文字が区別され(属性の定義を参照)、それが2番目の例で不一致を引き起こしています。これはHTML5では変更されていません。1
これは、セレクターの大文字と小文字の区別が、ドキュメント言語の発言に依存しているためです。
セレクターの制御下にない部分を除いて、すべてのセレクター構文はASCII範囲内で大文字と小文字を区別しません(つまり、[az]と[AZ]は同等です)。セレクターのドキュメント言語要素名、属性名、および属性値の大文字と小文字の区別は、ドキュメント言語によって異なります。
だから、とHTML要素を与えられSelfcatering
たクラスが、なくてSelfCatering
セレクタ、クラス.Selfcatering
と[class~="Selfcatering"]
それにマッチします、セレクタしばらく .SelfCatering
して[class~="SelfCatering"]
ないでしょう。2
ドキュメントタイプでクラス名が大文字と小文字を区別しないと定義されている場合は、関係なく一致します。
1 すべてのブラウザーの互換モードでは、クラスとIDは大文字と小文字を区別しません。つまり、大文字と小文字が一致しないセレクターは常に一致します。この動作は、従来の理由によりすべてのブラウザで一貫しており、この記事で説明されています。
2 価値があるのは、セレクターレベル4に、[class~="Selfcatering" i]
またはを使用して属性値の大文字と小文字を区別しない検索を強制するための提案された構文が含まれていること[class~="SelfCatering" i]
です。どちらのセレクターも、HTMLまたはXHTML要素をSelfcatering
クラスまたはSelfCatering
クラス(または、もちろん両方)と一致させます。ただし、クラスまたはIDセレクターにはそのような構文はありません(まだ?)。これは、通常の属性セレクター(セマンティクスが関連付けられていない)とは異なるセマンティクスを持っているためか、使用可能な構文を考え出すことが難しいためです。
div
、DIV
セレクターは両方ともと一致しました<div>
が、IDとクラス名のセレクターは大文字と小文字を区別する必要がありました。あなたの答えを誤解しない限り?
DIV
セレクターは一致しなくなります。)
.selfcatering
と、セレクタが大文字で小文字が区別されない場合、クラスがSelfcatering
orであるSelfCatering
かorであるsElfcAtErInG
かを気にする必要があるのはなぜですか。何が欠けていますか?
互換モードでは、CSSクラス名とID名を使用すると、すべてのブラウザーが大文字と小文字を区別しないように動作します。
互換モードでは、CSSクラスとIDの名前は大文字と小文字が区別されません。標準モードでは、大文字と小文字が区別されます。(これはgetElementsByClassNameにも適用されます。)詳細
以下のような間違ったdoctypeがあると、ブラウザが互換モードになります。
<!DOCTYPE html PUBLIC>
<!DOCTYPE html anytext>
標準のdoctypeを使用する必要があります
HTML 5
<!DOCTYPE html>
HTML 4.01厳格
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01トランジショナル
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01フレームセット
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0厳格
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0移行
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0フレームセット
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
CSSクラスまたはID名の大文字と小文字が区別されない場合は、Doctypeを確認してください。
CSSは大文字と小文字を区別しません。
ただし、HTML5では、クラスとIDは大文字と小文字が区別されます
したがって、CSSプロパティ、値、疑似クラス名、疑似要素名、要素名は大文字と小文字を区別しません
また、CSSクラス、id、urls、font-familiesでは、大文字と小文字が区別されます。
注:HTML互換モードでは、CSSはIDとクラスであっても大文字と小文字を区別しません(Doctype宣言を削除した場合)
CodePenの例:https ://codepen.io/swapnilPakolu/pen/MWgvQyB?&editable=true#anon-signup
<!DOCTYPE html>
<html>
<head>
<title>CSS case sensitive ?</title>
<style>
P#id
{color:RED;}
p#ID
{font-size:30PX;}
#iD
{BORDER:4px solid blue;}
.class
{text-decoration:underLine;}
.CLASS
{background-color:graY;}
.Class
{font-weight:900;}
#ID::afTeR
{conTent:"colored text";
disPlay:bLock;
color:#fAdAcA;}
.class:hoVeR
{background-color:lightblue;}
</style>
</head>
<body>
<p id="id" class="class">red and underline</p>
<p id="ID" class="CLASS">30px font size and gray background</p>
<p id="iD" class="Class">bold and blue border</p>
</body>
</html>