目次
基本
ホームページ ウェブフロントエンド htmlチュートリアル CSS_html/css_WEB-ITnose での変数の使用方法の詳細な説明

CSS_html/css_WEB-ITnose での変数の使用方法の詳細な説明

Jun 24, 2016 am 11:42 AM

CSS の変数は、利便性、コードの再利用、より信頼性の高いコード ベース、エラー防止機能の向上など、多くの利点をもたらします。

基本

CSS 変数を使用する場合、次の 3 つの主要なコンポーネントを知っておく必要があります:

カスタム プロパティ
  • var() 関数
  • :root 擬似クラス
  • カスタム プロパティ

    もう知っている色、マージン、幅、フォントサイズなどの 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() 関数

    カスタム属性を適用するには、

    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 pseudo-class

    カスタム属性を配置する場所が必要です。カスタム プロパティは任意のスタイル ルールで指定できますが、あらゆる場所にプロパティを定義することは得策ではありません。これは CSS の保守性と可読性にとって課題となります。

    :root 疑似クラスは、HTML ドキュメントのルート要素を表します。これは、他のより具体的なセレクターを通じてカスタム属性値をオーバーライドできるため、カスタム属性を配置するのに適しています。

    CSS 変数の利点

    保守性

    Web 開発プロジェクトでは、特定の CSS プロパティ値を再利用することがよくあります:

    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; }
    ログイン後にコピー

    現在の顧客が、テキストの色が明るすぎて読みにくいため、テキストの色を変更したいと言っているとします。現時点では、更新する必要があるのは 1 行だけです。 CSS ルールの説明:

    :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 ); }
    ログイン後にコピー

    CSS の可読性の向上

    カスタム属性により、スタイル シートがより読みやすくなり、CSS プロパティ宣言がよりセマンティックになります。

    このステートメント

    --text-color: black;
    ログイン後にコピー

    を次のステートメント

    background-color: yellow;font-size: 18px;
    ログイン後にコピー

    と比較してください。 yellow や 18px などの属性値は有用なコンテキスト情報を提供しませんが、--base-font-size や -- などを読むと、属性名はhighlight-colorと同じなので、他の人のコードでもこの属性値が何をしているのかすぐに分かります。

    注意事項

    大文字と小文字を区別します

    カスタム属性は大文字と小文字が区別されます(通常のCSSルールとは異なります)

    background-color: var( --highlight-color );font-size: var( --base-font-size );
    ログイン後にコピー

    カスタム属性値の解析

    カスタム属性が繰り返し宣言される場合、その割り当ては通常のCSSカスケードに従いますそして継承ルール。たとえば、次の例:

    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; }
    ログイン後にコピー

    CSS

    <body>  <div class="container">    <a href="">Link</a>  </div></body>
    ログイン後にコピー

    .container ルールが削除されると、リンクの色の値は緑色になります。

    フォールバック値

    var() 関数を使用する場合、最初のパラメーターから , で区切られた追加パラメーターとしてフォールバック属性値を割り当てることができます。次の例を見てください:

    HTML

    :root { --highlight-color: yellow; }body { --highlight-color: green; }.container { --highlight-color: red; }a { color: var( --highlight-color ); }
    ログイン後にコピー

    CSS

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

    フォールバック値パラメータが var() に渡されるため、div の背景色は赤でレンダリングされます。

    無効な値

    CSS プロパティに間違ったタイプの値を割り当てないように注意してください。

    以下の例では、カスタム属性 --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; }
    ログイン後にコピー

    Aこれを回避する良い方法は、わかりやすいカスタム プロパティ名を付けることです。たとえば、上記のカスタム属性に --small-button-width という名前を付けます

    CSS 変数のブラウザ サポート

    CSS 変数は非常に使いやすいですが、ブラウザのサポートはあまり良くありません:


    または、ここをクリックしてリンク: var support

    この記事は @Jacob Gube の「 Introduction to CSS Variables 」をもとに翻訳したものであり、翻訳内容に個人的な理解や考えが含まれておりますので、翻訳が良くない場合や間違っている点がございましたら、同業者の方にアドバイスをお願いいたします。この翻訳を転載する場合は、英語のソースを明記してください: http://sixrevisions.com/css/variables/。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

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

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

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

    SublimeText3 中国語版

    SublimeText3 中国語版

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

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    &lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

    この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

    &lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

    この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

    &lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

    この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

    HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

    記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

    HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

    この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

    ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

    この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

    &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

    この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

    Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

    GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

    See all articles