CSS仕様は言及されていませんが、CSSファイルでCスタイルおよび/またはUNIXスタイルのラインコメントをシミュレートする方法はいくつかあります(いくつかの制限があります)。他の人はこれについて以前に書いたことがあります(特に、CSSアノテーションはSitePointのWeb Foundationsの記事で説明されています)。この記事では、これについて詳しく説明します。
キーポイント
cssコメント
仕様によると、CSSパーサーは、注釈スタイル、つまり、以下に示すように開始マーク/*
およびエンドマーク*/
を使用するCスタイル言語からのマルチラインコメントを正式にサポートしています。 >
<code>/* 起始和结束标记之间(包括起始和结束标记)的字符将被解析器忽略, */</code>
コメントのブロック宣言は無視されます:
<code>body { background: red; /* background: white; */ }</code>
これらの例では、私たち全員が意図的に
<code>/* body { background: red; } */</code>
ただし、奇形のステートメントを使用するなど、これを予想外に行うこともあります。 この例では、セミコロンがないため、
背景宣言はどちらも適用されません。パーサーは次のセミコロンをスキャンして、2行のステートメント全体が正しくないことを判断するため、語彙分析全体の内容は無視されます。属性値を完全に省略した場合、同じことが起こります:
<code>body { background: red /* 缺少分号 */ background: blue; }</code>
これは、奇形のステートメントを...として使用できることを示しています。
pseudoコメント<code>body { background: background: blue; /* 此声明未应用 */ }</code>
これらを「擬似コメント」と呼びます。厳密に言えば、これらはライン文字の最後に終了するコメントではないからです。代わりに、それらは後続の入力を奇形で動作します(後続の行でも)。これは、ルールセット、宣言ブロック、およびセレクターのエラー処理プロセスによるものです。
「セレクターのどこにでもエラーがある場合、セレクターの残りがCSS 2.1で合理的に見える場合でも、ステートメント全体を無視する必要があります。」次の例(仕様からの抜粋)では、セレクターの無効な文字 "&"のために2番目のルールセットが無視されます。
同様に、次の例では、背景プロパティ名に冗長文字が存在するため、2番目と3番目の宣言は無視されます。英語のキーボードを一目見れば、次の特殊文字がシングルライン宣言のコメントとして機能することが明らかになります。
<code>/* 起始和结束标记之间(包括起始和结束标记)的字符将被解析器忽略, */</code>
を使用します
<code>body { background: red; /* background: white; */ }</code>
semi-colon
セミコロンは、ルール宣言の最終マークです。したがって、彼らは続くテキストを「コメント」することはできません。仕様では、パーサーは、ぶら下がっているセミコロンを奇形の宣言(名前、コロン、または価値の宣言が欠落している)として扱います。
前述のように、通常のマルチラインコメント形式が誤っている場合、つまり、ルールセットまたは宣言の中で開始タグとエンドタグがバランスが取れない場合、パーサーは後続の宣言またはルールセットを無視します。パーサーは、影響を受ける宣言の次の宣言エンドタグ(半colon)を検索するため、次の以下は
次のステートメントの前にコメントの後にセミコロンを追加してこの問題を修正します(そのため 擬似コメントについては、セミコロンが並んでいない場合、効果は同じです:
<code>/* body { background: red; } */</code>
symicolon:
を復元して修正します<code>body { background: red /* 缺少分号 */ background: blue; }</code>
<code>body { background: background: blue; /* 此声明未应用 */ }</code>
これは、「擬似」という単語「擬似コメント」に入る場所です。これは、それを「コメント」と呼ばない正当な理由かもしれません。なぜなら、彼らはCまたはUNIXスタイルのラインコメントの最終的な慣習に違反しているからです。
<code>h1, h2 {color: green } h3, h4 & h5 {color: red } /* h6 {color: black }</code>
擬似コメントは、次の行の宣言を抑制します。次の例では、背景は青色になります:
によって抑制された後に同じ行に掲載された擬似コメント。次の例では、背景は青の代わりに白になります:
インライン擬似解決を備えたCSSセレクターの「圧縮」バージョンでさえ、単一宣言の注釈として動作します。次の例では、パーサーによって認識されたコメントマーク#が次のセミコロンで終了するため、最初の背景宣言は無視され、2番目の背景宣言は正しくフォーマットされていると認識されるため、適用されます(この場合、青は適用されます。体の背景):
<code>body { background: red; xbackground: white; /* 属性名称未被识别 */ y background: blue; /* 属性名称格式不正确 */ }</code>
(フォローアップコンテンツと同じです。スペースの制限により、残りの部分の残りの擬似オリジナルの創造物はここで省略されています。)
<code>selector { ~ property-name: ignored; ` property-name: ignored; ! property-name: ignored; @ property-name: ignored; # property-name: ignored; $ property-name: ignored; % property-name: ignored; ^ property-name: ignored; & property-name: ignored; * property-name: ignored; _ property-name: ignored; - property-name: ignored; + property-name: ignored; = property-name: ignored; | property-name: ignored; \ property-name: ignored; : property-name: ignored; property-name: ignored; . property-name: ignored; > property-name: ignored; , property-name: ignored; ? property-name: ignored; / property-name: ignored; }</code>
以上がCSSの擬似コメント(または、ブラウザの解析方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。