ホームページ ウェブフロントエンド CSSチュートリアル CSSの擬似コメント(または、ブラウザの解析方法)

CSSの擬似コメント(または、ブラウザの解析方法)

Feb 23, 2025 am 11:14 AM

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>
ログイン後にコピー
ログイン後にコピー
ただし、文字を使用しないでくださいが、cとunixの慣習に固執し、#または//:

を使用します

<code>body {
  background: red;
  /*
  background: white;
  */
}</code>
ログイン後にコピー
ログイン後にコピー

semi-colon

セミコロンは、ルール宣言の最終マークです。したがって、彼らは続くテキストを「コメント」することはできません。仕様では、パーサーは、ぶら下がっているセミコロンを奇形の宣言

(名前、コロン、または価値の宣言が欠落している)として扱います。 前述のように、通常のマルチラインコメント形式が誤っている場合、つまり、ルールセットまたは宣言の中で開始タグとエンドタグがバランスが取れない場合、パーサーは後続の宣言またはルールセットを無視します。パーサーは、影響を受ける宣言の次の宣言エンドタグ(半colon)を検索するため、次の以下は2つの背景宣言を「コメント」しました。

次のステートメントの前にコメントの後にセミコロンを追加してこの問題を修正します(そのため 擬似コメントについては、セミコロンが並んでいない場合、効果は同じです:

<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>
ログイン後にコピー
1行に掲載された

擬似コメントは、次の行の宣言を抑制します。次の例では、背景は青色になります:

によって抑制された後に同じ行に掲載された擬似コメント。次の例では、背景は青の代わりに白になります:

インライン擬似解決を備えた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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

静的フォームプロバイダーの比較 静的フォームプロバイダーの比較 Apr 16, 2025 am 11:20 AM

ここでは、「静的フォームプロバイダー」という用語を埋めてみましょう。あなたはあなたのHTMLを持ってきます

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

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

毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動 Apr 17, 2025 am 10:55 AM

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

HTMLダイアログ要素を使用したいくつかの実践 HTMLダイアログ要素を使用したいくつかの実践 Apr 16, 2025 am 11:33 AM

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

ペーパーフォーム ペーパーフォーム Apr 16, 2025 am 11:24 AM

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

「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? 「ポッドキャストにサブスクライブ」リンクはどこにすべきですか? Apr 16, 2025 pm 12:04 PM

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

それはすべて頭の中にあります:Reactヘルメットを使用してReact Poweredサイトのドキュメントヘッドを管理する それはすべて頭の中にあります:Reactヘルメットを使用してReact Poweredサイトのドキュメントヘッドを管理する Apr 15, 2025 am 11:01 AM

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

独自の非JavaScriptベースの分析をホストするためのオプション 独自の非JavaScriptベースの分析をホストするためのオプション Apr 15, 2025 am 11:09 AM

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

See all articles