CSSの擬似コメント(または、ブラウザの解析方法)
CSS仕様は言及されていませんが、CSSファイルでCスタイルおよび/またはUNIXスタイルのラインコメントをシミュレートする方法はいくつかあります(いくつかの制限があります)。他の人はこれについて以前に書いたことがあります(特に、CSSアノテーションはSitePointのWeb Foundationsの記事で説明されています)。この記事では、これについて詳しく説明します。
キーポイント
- CSSは公式にはCスタイルのマルチラインコメントのみをサポートしていますが、擬似コメントは解析エラーを使用してコードを不注意にコメントします。
- 擬似コメントは、セミコロンの省略や認識されていない属性名の使用など、CSS宣言を奇形することで作成できます。その結果、後続のコードが無視されます。
- 擬似コメントのインラインと次の行の配置は、後続のCSSルールが適用されているかどうかに影響し、インラインの擬似コメントは、同じ行の後続の宣言を無効にする可能性があります。
- 擬似解決も @ルールに適用することができ、観測された動作は、 @ルールにボディブロックが含まれているか、セミコロンで終了するかによって異なります。
- 擬似コメントはデバッグに使用できますが、読みやすくなり、標準のCSSコメントを生産コードに置き換えるべきではありません。
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

これは私が初めてHTML要素を見ていることです。私はしばらくの間それを知っていましたが、まだスピンしていませんでした。かなりクールです

購入またはビルドは、テクノロジーの古典的な議論です。自分で物を構築することは、あなたのクレジットカードの請求書にはラインアイテムがないため、安価に感じるかもしれませんが

しばらくの間、iTunesはポッドキャストの大きな犬だったので、「ポッドキャストにサブスクライブ」をリンクした場合:

ドキュメントヘッドはウェブサイトの中で最も魅力的な部分ではないかもしれませんが、それに入るものは間違いなくあなたのウェブサイトの成功にとってそれと同じくらい重要です

サイトの訪問者と使用データを追跡するのに役立つ分析プラットフォームがたくさんあります。おそらく、特にGoogleアナリティクスが広く使用されています
