検索

CSS はあらゆる種類のカラフルな服を着せる素晴らしいものですが、開発者にとっては柔軟性が不十分なため、Sass 、LESS、Stylus などのさまざまなプリプロセッサが存在します (著者は Sass の SCSS 構文を推奨しています)。 、これらのプリプロセッサにより、CSS の柔軟性が大幅に向上し、コードの編成と CSS のメンテナンスが強化されます。しかし結局のところ、これらは生物学的に関連していません。その後、CSS 開発を担当する専門家は黙ってはいられず、CSS にいくつかの新機能を追加し始めました。この記事では、CSS 変数の進歩と応用について説明します。
W3C による CSS 変数の最新の調査は、カスケード変数モジュール レベル 1 の CSS カスタム プロパティに反映されています。最新の更新は 2014 年 5 月 6 日に行われました。現時点では草稿であるため、この記事は調査と調査のみを目的としています。この記事は W3C の修正後に同時に更新される可能性があります。

なぜそうなるのですか?

Web サイトやアプリケーションには大量の CSS が含まれることが多く、Web サイトで使用されるカラー システム、背景色、テキストの色、リンクの色など、これらの繰り返し使用される属性値は、多数の CSS ドキュメントに散在しており、色の変更など、値の一部を変更する必要がある場合、それは単なる悪夢です。各ファイルを検索して置換するという膨大な量の機械的な繰り返し操作では、必然的に間違いが発生するため、CSS コードの編成とメンテナンスが CSS の使用を妨げる重要なボトルネックとなっています。
もちろん、CSS プリプロセスはこれらの問題を効果的に解決できます。プリプロセッサの使用は事実上の業界標準となっており、Sass を選択するフロントエンド担当者がますます増えています。ただし、コンパイル環境を導入したり、開発ツールを Sass に対応させたりする必要があり、追加の作業が必要になります。何かが起こると、私たちは、いつか通常の CSS と同じようにプリプロセッサを使用できるようになったらどうなるだろうか、と考えずにはいられません。
W3C の CSS にはさまざまなものがあります。

繭を剥がして絹を描きます

変数については、定義と使用にすぎません。 次に、それらを個別に分析します。

変数を定義する

次のコードに示すように、このカスタム属性には、先頭に二重点線が付いています。

/* 变量定义 */:root {  --main-color: #06c;}/* 变量使用 */#foo h1 {  color: var(--main-color);}

変数名

カスタム属性名と変数名は、CSS 識別子の定義規則に従い、英数字 (a-z、A-Z、0-9)、ISO 10646 文字リストの U+00A0 以降の文字、およびアンダースコアを含めることができます(_)、ハイフン(-)などを数字、ハイフン+数字、ダブルハイフンで始めることはできません。
CSS 変数の構文では大文字と小文字が区別され、文字、数字、アンダースコア、ハイフンを含めることができますが、数字やハイフンで始めないことをお勧めします。

/* 正确的变量名 */:root{	--link-color: #06c;	--_hover-color: #f6c;	--toolTip_color: #ff0;	--main_background_color: #333;}/* 下面两个变量都有效,表示两个变量 */:element{	--link-color:#06c;	--Link-color:#66c;}

変数値は文法に準拠した任意の値を受け入れることができますが、デフォルト値は " " にすることはできません。それ以外の場合はエラーが報告されます。

変数の継承とオーバーライド

変数の宣言と使用は、通常のプログラミング言語の変数スコープと同様に、CSS のカスケード特性に従います。以下のコードを見てください。

:root { --color: blue; }div { --color: green; }#alert { --color: red; }* { color: var(--color); }<p>I inherited blue from the root element!</p><div>I got green set directly on me!</div><div id='alert'>  While I got red set directly on me!  <p>I’m red too, because of inheritance!</p></div>

変数の使用

var() を通じて変数を使用できますが、変数は属性名とセレクターでは使用できません。変数を使用するための構文は次のとおりです。

/*  * var()接受两个参数,自定义属性名(变量名)、缺省值 * 第一个参数custom-property-name调用变量 * 第二参数可选,指定自定义变量无效时的缺省值。 */var() = var( <custom-property-name> [, <any-value> ]? )/* for example *//* In the component’s style: */.component .header {  color: var(--header-color, blue);}.component .text {  color: var(--text-color, black);}/* In the larger application’s style: */.component {  --text-color: #080;  /* header-color isn’t set,     and so remains blue,     the fallback value */}

CSS 変数への呼び出しをネストできます。

/*one example */:root {  --main-color: #c06;  --accent-background: linear-gradient(to top, var(--main-color), white);}/*another example */<one><two><three /></two></one>one   { --foo: 10px; }two   { --bar: calc(var(--foo) + 10px); }three { --foo: calc(var(--bar) + 10px); }

互換性と包括性

フロントエンド開発者にとって、互換性と包括性は常に達成が難しい苦痛であり、「オタク思考」を持つフロントエンド担当者として、私たちは依然として懸命に取り組む必要があります。
まず、CSS 変数の現在の驚くべき互換性を見てみましょう。以下の図に示すように、データは caniuse から取得されています。

このライン全体は人気がありますが、Firefox だけが知っています。どうすれば再生できますか?
もし兄弟が私がわがままでふざけたいと言ったらどうすればよいですか?外国人がパッチ(ポリフィル)を書いてくれたので試してみると良いでしょう。

明確な説明を求めています

要約すると、CSS 変数はドラフト段階にあり、ブラウザーの互換性は平均的です。私は今日、単に視野を広げて知識を蓄えるためにこの記事を書いています。商用利用の場合はSassやLESSなどのプリプロセッサをご利用ください。
詳細については、以下のリストを使用して詳細を確認してください。

  • W3C リファレンス
  • MDN 情報
  • caniuse
  • 謝辞

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    HTML:構造、CSS:スタイル、JavaScript:動作HTML:構造、CSS:スタイル、JavaScript:動作Apr 18, 2025 am 12:09 AM

    Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

    HTMLの未来:ウェブデザインの進化とトレンドHTMLの未来:ウェブデザインの進化とトレンドApr 17, 2025 am 12:12 AM

    HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

    HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

    Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

    HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

    htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

    HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

    HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

    テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

    HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

    HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

    webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

    HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

    HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

    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ヘンタイを無料で生成します。

    ホットツール

    VSCode Windows 64 ビットのダウンロード

    VSCode Windows 64 ビットのダウンロード

    Microsoft によって発売された無料で強力な IDE エディター

    メモ帳++7.3.1

    メモ帳++7.3.1

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

    MinGW - Minimalist GNU for Windows

    MinGW - Minimalist GNU for Windows

    このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 最新バージョン