> CSS・Sass > Sass(scss)の使い方~プレースホルダーと@extendで共通スタイルを再利用しよう
Sass(scss)の使い方~プレースホルダーと@extendで共通スタイルを再利用しよう

Sass(scss)の使い方~プレースホルダーと@extendで共通スタイルを再利用しよう

SassはCSSを効率的に記述するために開発されたメタ言語(拡張言語)です。
Sassについての基礎知識は下記の記事で紹介しています。

Sassでは、共通する複数のスタイルをまとめて定義して再利用する方法として、プレースホルダーや@mixinという機能があります。
今回はプレースホルダーの使い方や使い所について紹介します。

プレースホルダー(%記法)とは?

プレースホルダーとは、%から始まる仮のセレクターで、実際のCSSには出力されません。
複数のCSSプロパティをまとめて登録しておくことができます。
登録されたプレースホルダーは、@extendを使うと出力され、複数のセレクタにスタイルを継承させることができます。

scss記述例

// プレースホルダー定義
%btn-base {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 4px;
  font-weight: bold;
}

// プレースホルダーを継承
.btn-primary {
  @extend %btn-base; // @extend %プレースホルダー名; でスタイルを継承する
  background-color: #3498db;
  color: #fff;
}

.btn-secondary {
  @extend %btn-base; //@extend %プレースホルダー名; でスタイルを継承する
  background-color: #ccc;
  color: #333;
}

%プレースホルダー名と記載すると複数のCSSプロパティをセットにして定義できます。
設定したプレースホルダーを@extendすることでプレースホルダーに登録した内容をセレクタに適用できます。

出力されるCSS

.btn-primary,
.btn-secondary {
// %btn-base に登録されている部分は統合して出力される
  display: inline-block;
  padding: 8px 16px;
  border-radius: 4px;
  font-weight: bold;
}

// %btn-base に登録されていない部分は個別に出力される
.btn-primary {
  background-color: #3498db;
  color: white;
}

.btn-secondary {
  background-color: #ccc;
  color: #333;
}

.btn-primary.btn-secondaryには%btn-base@extendされているので、重複しているプレースホルダーの記述部分は統合して出力されます。
プレースホルダーに登録されていない部分のみ個別に出力されます。

プレースホルダーを使うメリット

  1. 複数のスタイルをまとめて登録できる

    変数の利用では単一の設定内容(文字列・数列など)しか登録できませんが、プレースホルダーでは複数の設定内容をプロパティ名・設定値を組み合わせて登録することができます。

  2. 共通するスタイルを一元管理できる

    複数のセレクタに同じ設定を適用できるし、修正も一箇所修正すればOKです。

  3. 重複する設定が何度も出力されない

    プレースホルダーを利用しているセレクタは統合され、異なる部分のみが出力されるので、CSSをシンプルに保つことができます。

プレースホルダー使用時の注意点

プレースホルダーを利用する時は下記のことに注意しましょう。

  1. 想定外の統合に注意する

    プレースホルダーに登録した内容は@extendされたセレクタが統合されたCSSブロックにまとめて記載されます。
    @extendを乱用するとコンパイル後にかえってわかりにくくなることがあるので注意しましょう。

  2. プレースホルダー登録内容は@extendしないと出力されない

    プレースホルダーに登録した内容は@extendしなければ出力されません。
    必ず出力したい内容はしっかり@extendしておきましょう。

  3. 1回限りのスタイルセットには使用しない

    プレースホルダーは複数のセレクタに適用できることがメリットなので、一度しか使わないスタイルにプレースホルダーを使っても意味が薄く、コードが冗長になるためかえって分かりづらくなることがあります。

@mixinとプレースホルダーを使い分けよう

プレースホルダーのように複数のプロパティ・設定値をまとめる機能として、@mixinがあります。
それぞれの特徴を理解して、適切に使い分けましょう。

@mixinとプレースホルダーの違いや使い分けの方法については別の記事で詳しく紹介します。

最後に

Sassのプレースホルダーは、共通スタイルの再利用に非常に有用な機能です。
特に、複数の要素に同じベーススタイルを適用したいときに効果を発揮します。

ただし、@extendによる影響範囲が広がることで予期せぬスタイルが適用されることもあるため、使いどころの見極めが重要です。
@mixinとの使い分けも考えて適切に活用しスマートなコーディングを目指しましょう。

この記事が気に入ったらシェアしてください

関連記事

Sass(scss)の基本的な使い方~変数を利用してコーディングを簡単にする方法

Sass(scss)の基本的な使い方~変数を利用してコーディングを簡単にする方法

Sass(scss)の基本的な使い方~セレクタやプロパティ・メディアクエリのネスト

Sass(scss)の基本的な使い方~セレクタやプロパティ・メディアクエリのネスト

Sassの@forwardで他のscssファイルの定義を転送する~scssファイルを分割して管理するパーシャルの考え方と使い方③

Sassの@forwardで他のscssファイルの定義を転送する~scssファイルを分割して管理するパーシャルの考え方と使い方③

Sassの@useで他のscssファイルの定義を利用する~scssファイルを分割して管理するパーシャルの考え方と使い方②

Sassの@useで他のscssファイルの定義を利用する~scssファイルを分割して管理するパーシャルの考え方と使い方②

scssファイルを分割して管理するパーシャルの考え方と使い方①

scssファイルを分割して管理するパーシャルの考え方と使い方①

Sassとは?SCSSとSASSの違いや基礎知識と導入方法【2025年版】

Sassとは?SCSSとSASSの違いや基礎知識と導入方法【2025年版】

Comment Form

コメント投稿はこちらをクリックしてください
  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)