検索
ホームページウェブフロントエンドCSSチュートリアルカスタムプロパティを備えた大きなゴッチャ

カスタムプロパティを備えた大きなゴッチャ

最近、私は多くの人々(私を含む)がCSSカスタム属性のこの機能に混乱していることを発見したので、私はそれを記録することにしました。

CSSにいくつかのカスタムプロパティを追加しましょう。

 html {
  -color-1:赤;
  -Color-2:青。
}

それらをすぐに使用して、背景勾配を作成します。

 html {
  -color-1:赤;
  -Color-2:青。

  -BG:線形勾配(右、var( -  color-1)、var( -  color-2));
}

ここで、ページに2つのdivがあるとします。

<div></div>
<div></div>

それらをスタイリングしましょう:

 div {
  背景:var( -  bg);
}

これは完全に機能します!素晴らしい!

それでは、スタイルを変更しましょう。から青に変えたくないので、から青に変えたいです。それは非常にシンプルです、私は赤を緑に更新しました:

 html {
  -color-1:赤;
  -Color-2:青。

  -BG:線形勾配(右、var( -  color-1)、var( -  color-2));
}
div {
  背景:var( -  bg);
}
.Variation {
  -color-1:緑。
}

無効! (サイレンは大きく、角は騒々しく、家畜はどこにでも隠れています)。

友達、これはうまくいきません。

私が理解する限り、問題は--bg Divで宣言されたことがないことです。 --bg 、より高いレベルで宣言されているため、使用できますが、使用すると値がロックされています。 --bg宣言の場合に使用される他の属性を変更したからといって、属性が依存関係として使用されているすべての場所を探し、それを使用するすべての場所を更新することを意味しません。

悲しいかな、この説明は正しいとは感じません。しかし、これは私が考えることができる最良の説明です。

解決?まあ、いくつかあります。

ソリューション1:変数スコープを使用している場所に制限します。

あなたはこれを行うことができます:

 html {
  -color-1:赤;
  -Color-2:青。
}

div {
  -BG:線形勾配(右、var( -  color-1)、var( -  color-2));
  背景:var( -  bg);
}
.Variation {
  -color-1:緑。
}

現在、 --bgは両方のdivで宣言され、 --color-1依存関係の変更が機能します。

ソリューション2:コンマを分離した状態で、ほとんどの変数のセレクターを設定します。

:rootで多数の変数を設定するという一般的な操作を行ったとします。その後、この問題に遭遇します。メイン宣言に追加のセレクターを追加して、正しい範囲を押すことを確認できます。

 HTML、
div {
  -color-1:赤;
  -Color-2:青。

  -BG:線形勾配(右、var( -  color-1)、var( -  color-2));
}
div {
  背景:var( -  bg);
}
.Variation {
  -color-1:緑。
}

他のいくつかの例では、あまりにも遠くないかもしれませんが、次のように見えるかもしれません。

 :根、 
。ボタン、
。
   - パッディングインライン:1rem;
   - パディングブロック:1Rem;
   - パディング:var( - パディングブロック)var( - パディングインライン);
}

。ボタン {
  パディング:var( - パディング);
}
.button.less-wide {
   - パッディングインライン:0.5rem;
}

ソリューション3:包括的なモード

彼に行く - どこにでも変数を置きます。

 * {
   - アクセス:私;
   - どこでも:あなた;
  -want:to;

  -HOGWILD:var( - アクセス)var(-wherewhere);
}

これは良い解決策ではありません。最近、ページのレンダリングにより中規模サイトの1つが500ms遅れたチャットを聞いたことがあります。ページのすべての描画では、すべての属性を計算する必要があるためです。それは「動作」しますが、これはセレクターを通じて正当なパフォーマンスの問題を引き起こすことができる数少ない例の1つです。

ソリューション4:新しい「デフォルト」プロパティとフォールバックを導入します

ここでのすべてのクレジットは、このコンテンツのすべての探求で最初に見たステ​​ィーブンショーにクレジットされています。

この質問を最初に示したところに戻りましょう。

 html {
  -color-1:赤;
  -Color-2:青。

  -BG:線形勾配(右、var( -  color-1)、var( -  color-2));
}

私たちがしなければならないことは、2つのことを与えることです。

  1. 背景全体をカバーする方法
  2. 勾配の背景の一部をカバーする方法

だから私たちはこれをしなければなりません:

 html {
  -color-1:赤;
  -Color-2:青。
}
div {
  -BG-DEFAULT:線形勾配(右、var( -  color-1)、var( -  color-2));
  背景:var( -  bg、var( -  bg-default));
}

--bgをまったく宣言しないことに注意してください。値を待っているだけで、値を取得した場合、それは「勝利」の価値です。しかし、そうでない場合は、 --bg-defaultに戻ります。今……

  1. --color-1または--color-2を設定すると、予想どおりに勾配のその部分を置き換えます(Divの1つに触れるセレクターでこれを行う限り)。
  2. または、 --bgを設定して、背景全体を必要なものにリセットすることができます。

それはそれに対処する良い方法のように感じます。

CSSカスタムプロパティに実際にエラーがある場合があります。しかし、それはそれらの1つではありません。たとえそれが私にとってバグのようなものであっても、明らかにそうではありません。あなたが知っておくべきことの1つだけです。

以上がカスタムプロパティを備えた大きなゴッチャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
毎週のプラットフォームニュース:Galaxy Store、Tappable Stories、CSS SubgridのWebアプリ毎週のプラットフォームニュース:Galaxy Store、Tappable Stories、CSS SubgridのWebアプリApr 14, 2025 am 11:20 AM

今週のラウンドアップ:Firefoxは錠前屋のような力を獲得し、Samsung&#039; s Galaxy StoreがプログレッシブWebアプリをサポートし始め、CSS SubgridはFirefoxで出荷しています

毎週のプラットフォームニュース:インターネットエクスプローラーモード、検索コンソールの速度レポート、通知プロンプトの制限毎週のプラットフォームニュース:インターネットエクスプローラーモード、検索コンソールの速度レポート、通知プロンプトの制限Apr 14, 2025 am 11:15 AM

今週のラウンドアップ:Internet ExplorerがEdgeに進み、Google Search Consoleが新しい速度レポートを宣伝し、FirefoxがFacebookの通知を提供します

CSSカスタムプロパティを使用したスコープのパワー(および楽しい)CSSカスタムプロパティを使用したスコープのパワー(および楽しい)Apr 14, 2025 am 11:11 AM

おそらく、CSS変数に少なくとも少し精通しているでしょう。そうでない場合は、ここに2秒の概要があります:それらは本当にカスタムプロパティと呼ばれます、あなたは設定します

私たちはプログラマーです私たちはプログラマーですApr 14, 2025 am 11:04 AM

建物のウェブサイトはプログラミングです。 HTMLとCSSの作成はプログラミングです。私はプログラマーです。ここでCSS-Tricksを読んでいる場合、あなたは&#039;

サイトから未使用のCSSをどのように削除しますか?サイトから未使用のCSSをどのように削除しますか?Apr 14, 2025 am 10:59 AM

ここに&#039;私が前もって知るのが好きなこと:これは難しい問題です。あなたがここに上陸した場合、あなたはあなたが伝えることができるツールを指し示すことを望んでいるので、あなたが&#039;

ピクチャーインピクチャーWeb APIの紹介ピクチャーインピクチャーWeb APIの紹介Apr 14, 2025 am 10:57 AM

Picture-in-Pictureは、2016年にMacos SierraをリリースしたSafariブラウザでWebに初めて登場しました。ユーザーがポップできるようになりました。

ギャツビーを使用してぼやけた効果のために画像を整理して準備する方法ギャツビーを使用してぼやけた効果のために画像を整理して準備する方法Apr 14, 2025 am 10:56 AM

Gatsbyは、画像の処理と処理の素晴らしい仕事をしています。たとえば、手動で画像の最適化で時間を節約するのに役立ちます

ああ、パディングの割合は親要素の幅に基づいていますああ、パディングの割合は親要素の幅に基づいていますApr 14, 2025 am 10:55 AM

私は今日、私の頭の中で完全に間違っていたことをパーセンテージベース(%)のパディングについて学びました!パディングの割合はに基づいているといつも思っていました

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境