web-dev-qa-db-ja.com

CSSのプロパティ値では大文字と小文字が区別されますか?

引用符で宣言された_font-family_のようないくつかのCSSプロパティはおそらく大文字と小文字を区別しますが、他のすべてはそうではありません...しかしどのようにWebブラウザと "HTMLレンダラーは解釈する必要がありますか?CSSコンテキスト(XML、SVGなど)と他のすべてのアプリケーションで同じですか? 標準は何について言っていますか?

例:Adobe InDesignは、_font-family:'Optima Bold'_と_font-family:'optima bold'_の両方をエクスポートしました。 「小文字に正規化」することはできますか(類似のクラスをマージするなど)?

ノート

参照は不完全であり、競合しています。


この質問/回答ここでのポイントと比較すると、おそらく、いくつかの(個人的な)客観的な考慮事項に変換できます。

  1. この回答の(目的!)規範的(CSS2、CSS3、XHTML1、またはHTML5のW3C仕様)ソースはありますか?

  2. 「標準_font-family_一意の名前」では大文字と小文字を区別できません(そうでない場合は標準ではなくなります)...したがって、大文字と小文字を区別する正当な(賢明な引数による)プロパティは次のとおりです。

    2.1。 url(X)X値。backgroundなどのプロパティを参照してください。

    2.2。 content値、 ;

    2.3。 ...more ??.。

23
Peter Krauss

(@ÁlvaroG.Vicarioの回答とコメントを更新し、 この回答を補完する ...これはWikiです、編集して拡張してください

例:CSS3(およびHTML5)の場合、「font-faceプロパティは大文字と小文字を区別しない必要があります。」[2]


環境

W3C相互運用標準、主にXML、HTML、CSV、CSS。

CSSの一般的なルール

CSS2(2008年のW3C標準)「文字と大文字小文字」に関する基本規則を修正し、CSS3(2015年のW3C標準)はさらに何かを追加しました。

  1. デフォルトでは "すべてのCSS構文は大文字と小文字を区別しません(...)"[1]

  2. 例外があります、 "(...)CSSの制御下にない部分を除いて" [1]

    2.1。要素名は、HTML5(?)およびXMLでは大文字と小文字が区別されますが、HTML4では大文字と小文字が区別されません。

    2.2。識別子(要素名、クラス、セレクターのIDを含む)では、大文字と小文字が区別されます。フォント名およびURIのHTML属性idおよびclassは、CSS仕様の範囲外です。

  3. ..。

  4. ザ・

ケースマトリックス

例外と特定の(参照で明示された)ルール。 「YES」は、値が大文字小文字を区別することを示します。

プロパティ値:

 CSSプロパティ|大文字小文字の区別。 |参考資料と注意事項
 --------------- ------------ | ---------- ---------- 
%colorVals |いいえ| [3] 
 font-family |いいえ| [2] 
%url |はい| ... 
コンテンツ|はい| ... 
 ------------------------------------------ ---------- 
%colorVals =色、背景など
%url = `url()`を使用する背景画像など、[7]を参照とメモ。 

セレクター値:

 CSSセレクター|ケースセンズ。 |リファレンスとメモ
 ------------------ | ------------ | ---------- ---------- 
 id |はい| ... 
要素|はい/いいえ| ... XMLの場合はYES ... 
クラス名|はい| [5] 
( `〜i`演算子)|いいえ| [6] 
 ------------------------------------------ ---------- 
 YES/NO =ドキュメントの言語によって異なります(参照および注記を参照)。

参考資料:

[1] ---(W3C /CSS2/ syndata、sec。4.1.3文字と大文字小文字

[2] W3C /CSS3-fonts、秒5.1フォントファミリ名の大文字と小文字の区別

[3] W3C /CSS3-color、セクション4.1。基本的な色のキーワード

[4] W3C /CSS3-values、秒3.1。事前定義されたキーワード

[5] W3C /セレクター、3項。大文字と小文字の区別

[6] W3C /Selectors4、秒6.3。大文字と小文字の区別

[7] RFC 3986 および RL構文図 (Wikipedia)。


引用とメモ

  • 一般的なURLは domain で始まります。大文字と小文字は区別されませんが、その後は(pathqueryまたはフラグメント構文コンポーネント)、大文字と小文字が区別されます。 [7]を参照してください。

  • "ユーザーエージェントは、大文字と小文字を区別せずにこれらの名前と一致する必要があります"。 [2]

16
Peter Krauss

CSS 2 の仕様は次のように述べています。

CSS構文はASCII range内で大文字と小文字を区別しません(つまり、[az]と[AZ]は同等です) 、CSSの制御下にない部分を除く。たとえば、HTML属性「id」および「class」の値の大文字と小文字の区別"、フォント名、URIはこの仕様の範囲外です。特に、要素名はHTMLでは大文字と小文字を区別しませんが、XMLでは大文字と小文字を区別します。

...これは非常に理にかなっています:CSS自体はbackground-imageBACKGROUND-IMAGEの両方を受け入れますが、WebサーバーがLOGO.PNGlogo.pngを同一または異なるものと見なすかどうかを知る方法はありませんリソース。

(CSS3に相当するドキュメントが見つかりませんでした)

7