2022.07.13

Sass

@extendのプレースホルダーセレクタを利用

@extend専用のプレースホルダーセレクタは「%セレクタ名」のように記述します。@extendのプレースホルダーセレクタはCSSとして生成されません。

以下のhtml構造でボタン用のCSS生成に、@extendのプレースホルダーセレクタを利用します。

<div class="c-btn">
  <a class="c-btn-link">リンクテキスト</a>
</div>

<div class="c-btn -black">
  <a class="c-btn-link">リンクテキスト</a>
</div>

<div class="c-btn -small">
  <a class="c-btn-link">リンクテキスト</a>
</div>

Sassは以下のように記述します。

.c-btn {
  &-link {
    @extend %button-style;

    .-black & {
      color: #000000;
      border: 1px solid #000000;
    }

    .-small & {
      font-size: 12rem;
    }
  }
}

%button-style {
  font-size: 24rem;
  font-weight: bold;
  color: #ff0000;
  display: inline-block;
  padding: 20px;
  border: 1px solid #ff0000;
}

コンパイル後のCSSは以下になります。プレースホルダーセレクタである「button-style」はCSSとして生成されていないのが確認できます。

.c-btn-link {
  font-size: 24rem;
  font-weight: bold;
  color: #ff0000;
  display: inline-block;
  padding: 20px;
  border: 1px solid #ff0000;
}

.-black .c-btn-link {
  color: #000000;
  border: 1px solid #000000;
}

.-small .c-btn-link {
  font-size: 12rem;
}

関連記事

2025.07.05

Sass

mixinで@ifの条件分岐を利用して疑似要素を表示

mixinで@if(条件分岐)を利用して、疑似要素にグラデーションの点線ボーダーを表示します。mixinの設定は以下になります。 デフォルトの設定として要素の上…

2020.09.30

Sass

Koalaで発生したコンパイルエラーの対処法

Koalaで発生したコンパイルエラーの対処法です。発生したエラーはログから確認できますが、Koalaの起動を終了するとエラーログは消去されます。 Argumen…

2021.02.19

Sass

mixinでfont-sizeとletter-spacingを設定

htmlタグやbodyタグにfont-sizeの基準値を何も設定していない場合、1emを指定すると16pxで表示されます。20pxで表示したい場合は、20px …

2021.01.27

Sass

プロパティに変数でマイナス値を設定

プロパティに変数でマイナス値を設定するケースです。例えばマイナスmarginを設定する場合、値が単独の場合は以下のように記述すれば問題ありません。 ですがプロパ…

2021.01.26

Sass

インターポレーションの利用

インターポレーションは変数が参照できない場所でも使うことができるようにする機能です。通常Sassの変数はプロパティ値から参照して使用します。この場合インターポレ…

上に戻る