ホームページ > ウェブフロントエンド > CSSチュートリアル > ネストされた CSS スコープのカスタム プロパティが無視されるのはなぜですか?

ネストされた CSS スコープのカスタム プロパティが無視されるのはなぜですか?

Linda Hamilton
リリース: 2024-12-23 13:55:17
オリジナル
916 人が閲覧しました

Why Are My Nested CSS Scoped Custom Properties Being Ignored?

ネストされた宣言内で無視される CSS スコープ付きカスタム プロパティ

CSS 内でカスタム プロパティを定義する場合、スコープがその評価にどのような影響を与えるかを理解することが重要です。スコープ付きカスタム プロパティは、定義されている要素またはコンポーネント内でローカルにのみ使用できます。ただし、外側のスコープでスコープ指定されたカスタム プロパティを使用しようとすると、共通の課題が発生します。

この特定のケースの目標は、カスタム プロパティを介してスケール係数を定義し、それをさまざまな要素に適用することです。ただし、示されているように、適用されるスケール クラスに関係なく、すべてのリスト要素は均等にスケールされます。

この問題に対処するには、カスタム プロパティが上下に評価されることに注意することが重要です。この例のように、カスタム プロパティがルート レベルで定義されている場合、ネストされた要素内の同じプロパティの後続の定義は無視されます。

次の簡略化した図を考えてみましょう:

:root {
  --color: var(--c, blue);
}

span {
  color: var(--color);
}
ログイン後にコピー

ここでは、カスタム プロパティ --color がルート レベルで定義されています。これをspan要素内でオーバーライドしようとすると:

<div>
  <div class="box">
    <span>
ログイン後にコピー

ネストされたCSS宣言を持つspan要素は赤色になりません。これは、カスタム プロパティがルート レベルですでに評価されており、--color が青に設定されており、オーバーライドの試行が無視されるためです。

対照的に、継承された --c: を持つspan要素は赤に変わります。親要素からカスタム プロパティ値を継承しているため、赤色です。

目的の効果を実現するには、カスタム プロパティがネストされた各コンポーネント内で個別に評価されることを確認する必要があります。これは、ルート レベルではなく、各クラスまたはコンポーネント内でローカルにプロパティを定義することで実行できます。

以上がネストされた CSS スコープのカスタム プロパティが無視されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート