CodeGym /Javaコース /Frontend SELF JA /カスタムプロパティと継承

カスタムプロパティと継承

Frontend SELF JA
レベル 31 , レッスン 2
使用可能

3.1 カスタムプロパティ

CSS変数、またはカスタムプロパティは、Web開発におけるスタイル管理のための強力なツールだよ。これらを使うことで、パフォーマンスやコードの整理が改善され、CSSのサポート性と柔軟性が向上するんだ。カスタムプロパティと継承がこれらの要素にどう影響するのか、もう少し詳しく見てみよう。

カスタムプロパティって何?

忘れてたら、カスタムプロパティ(CSS変数)はCSSで設定して、スタイルシート全体で何度も使える値のことだよ。ダブルハイフン(--)で定義して、var()関数で使えるんだ。

カスタムプロパティの宣言:

CSS
    
      :root {
        --main-color: #3498db;
        --padding: 10px;
      }
    
  

カスタムプロパティの使い方:

CSS
    
      background-color: var(--main-color);
      padding: var(--padding);
    
  

3.2 パフォーマンスへの影響

1. 再利用の最適化

CSS変数を使うことで、コードの重複を避けることができて、同じ値を何度も使えるんだ。これによりコードの量を減らして、その保守を簡単にできるよ。

例:

CSS
    
      :root {
        --main-color: #3498db;
      }

      .header {
        background-color: var(--main-color);
      }

      .footer {
        background-color: var(--main-color);
      }
    
  

2. キャッシュとレンダリング

ブラウザはCSS変数を効果的にキャッシュして処理できるから、パフォーマンスに良い影響を与えるんだ。変数の値を変更すると、ブラウザはスタイルを一度だけ再計算すればいいから、レンダリングの負荷が減るんだ。

3. 動的な更新

CSS変数はJavaScriptを使って動的に変更できるよ。これでページ全体を再計算せずにスタイルを変更できるんだ。

例:

JavaScript
    
      document.documentElement.style.setProperty('--main-color', '#e74c3c');
    
  

3.3 コードの構成に与える影響

スタイルの集中管理

CSS変数を一か所で定義することで、スタイルを集中管理できて、その保守と変更が容易になるんだ。

:rootの変数の値を変更するだけで、関連するスタイルがすべて自動的に更新される:

CSS
    
      :root {
        --font-size: 16px;
        --line-height: 1.5;
      }

      body {
        font-size: var(--font-size);
        line-height: var(--line-height);
      }
    
  

継承とコンテキスト

CSS変数は親要素から子要素に継承されるんだよ。これで上位レベルで値を設定して、より具体的なコンテキストでそれを使うことができる。

例:

CSS
    
      :root {
        --base-font-size: 16px;
      }

      .container {
        font-size: var(--base-font-size);
      }

      .container .heading {
        font-size: calc(var(--base-font-size) * 1.5);
      }
    
  

可読性の向上

CSS変数を使うことで、変数がその機能に応じた名前で定義されるため、コードの可読性が向上するよ。

例:

CSS
    
      :root {
        --primary-color: #3498db;
        --secondary-color: #2ecc71;
      }

      .primary-button {
        background-color: var(--primary-color);
      }

      .secondary-button {
        background-color: var(--secondary-color);
      }
    
  

ローカル変数とグローバル変数

変数はグローバルレベル(:rootに定義するなど)や、特定のセレクタにローカルに定義できる。これにより、柔軟で適応性のあるスタイルが可能になる。

例:

CSS
    
      :root {
        --global-padding: 10px;
      }

      .section {
        --section-padding: 20px;
        padding: var(--section-padding);
      }

      .item {
        padding: var(--global-padding);
      }
    
  

3.4 完全実装の例

ここに、継承とローカルオーバーライドのために変数を使用する例があるよ:

CSS
    
      :root {
        --main-padding: 10px;
        --main-margin: 20px;
        --primary-color: #3498db;
      }

      .container {
        padding: var(--main-padding);
        margin: var(--main-margin);
      }

      .container .header {
        --primary-color: #e74c3c; /* ローカル使用のための変数のオーバーライド */
        color: var(--primary-color);
      }

      .container .content {
        color: var(--primary-color); /* ルートからの変数の値を使用 */
      }
    
  
HTML
    
      <div class="container">
        <div class="header">This is the header</div>
        <div class="content">This is the content</div>
      </div>
    
  

説明:

  • この例では、--primary-color.contentのテキストスタイリングに使われていて、その値はルートから継承しているよ
  • .headerの中では、--primary-colorがオーバーライドされて、新しい値が使われているんだ
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION