CSS の変数は、利便性、コードの再利用、より信頼性の高いコード ベース、エラー防止機能の向上など、多くの利点をもたらします。
カスタム プロパティ
次の例では、CSS color プロパティを使用しています。
:root { --base-font-size: 16px; --link-color: #6495ed; }p { font-size: var( --base-font-size ); }a { font-size: var( --base-font-size ); color: var( --link-color ); }
カスタム プロパティ は、単に私たち (CSS ファイルを作成した人) がプロパティの名前を定義することを意味します。 属性名をカスタマイズするには、プレフィックスとして -- を使用する必要があります。
黒の値を持つ text-color という名前のカスタム属性を作成したい場合は、次のようにすることができます:
body { color: #000000; /* The "color" CSS property */ }
var() を使用する必要があります。 関数、それ以外の場合、ブラウザーはそれらが何を表しているのか分かりません。 p、h1、h2 のスタイルで --text-color を使用したい場合は、次のように var() 関数を使用できます:
:root { --text-color: #000000; /* A custom property named "text-color" */ }
:root { --text-color: #000000; }p { color: var( --text-color ); font-size: 16px; }h1 { color: var( --text-color ); font-size: 42px; }h2 { color: var( --text-color ); font-size: 36px; }
:root 疑似クラスは、HTML ドキュメントのルート要素を表します。これは、他のより具体的なセレクターを通じてカスタム属性値をオーバーライドできるため、カスタム属性を配置するのに適しています。
p { color: #000000; font-size: 16px; }h1 { color: #000000; font-size: 42px; }h2 { color: #000000; font-size: 36px; }
特に CSS ファイルが大きい場合にプロパティ値を手動で変更すると、時間がかかるだけでなく、エラーが発生する可能性があります。同様に、バッチ検索と置換を実行すると、他のスタイル ルールに誤って影響を与える可能性があります。
CSS 変数を使用して書き換えることができます:
h1 { margin-bottom: 20px; font-size: 42px; line-height: 120%; color: gray; }p { margin-bottom: 20px; font-size: 18px; line-height: 120%; color: gray; }img { margin-bottom: 20px; border: 1px solid gray; }.callout { margin-bottom: 20px; border: 3px solid gray; border-radius: 5px; }
:root { --base-bottom-margin: 20px; --base-line-height: 120%; --text-color: gray; }h1 { margin-bottom: var( --base-bottom-margin ); font-size: 42px; line-height: var( --base-line-height ); color: var( --text-color ); }p { margin-bottom: var( --base-bottom-margin ); font-size: 18px; line-height: var( --base-line-height ); color: var( --text-color ); }img { margin-bottom: var( --base-bottom-margin ); border: 1px solid gray; }.callout { margin-bottom: var( --base-bottom-margin ); border: 1px solid gray; border-radius: 5px; color: var( --text-color ); }
このステートメント
--text-color: black;
background-color: yellow;font-size: 18px;
注意事項
background-color: var( --highlight-color );font-size: var( --base-font-size );
HTML
:root { --main-bg-color: green; --MAIN-BG-COLOR: RED; }.box { background-color: var( --main-bg-color ); /* green background */ }.circle { BACKGROUND-COLOR: VAR(--MAIN-BG-COLOR ); /* red background */ border-radius: 9999em; }.box,.circle { height: 100px; width: 100px; margin-top: 25px; box-sizing: padding-box; padding-top: 40px; text-align: center; }
<body> <div class="container"> <a href="">Link</a> </div></body>
フォールバック値
HTML
:root { --highlight-color: yellow; }body { --highlight-color: green; }.container { --highlight-color: red; }a { color: var( --highlight-color ); }
<div class="box">A Box</div>
無効な値
以下の例では、カスタム属性 --small-button に長さの単位が割り当てられているため、.small-button スタイルで使用すると無効になります (翻訳者注: color 属性の型の値が間違っているため)
div { --container-bg-color: black; }.box { width: 100px; height: 100px; padding-top: 40px; box-sizing: padding-box; background-color: var( --container-bf-color, red ); color: white; text-align: center; }
CSS 変数のブラウザ サポート
または、ここをクリックしてリンク: var support