2021.01.26

Sass

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

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

$red: #ff0000;

.item {
  color: $red;
}

ですがプロパティ値以外、例えばセレクタ名の一部で変数を使用したい場合もあります。以下は親の参照が&ではできないため、変数を使用したいケースです。ただし以下のように記述するとどこまでが変数名か区別できずエラーになってしまいます。

.products-item {
  $this: &;

  &-ttl {
    margin-right: 20px;
  }

  &:nth-child(even) {
    $this-ttl {
      margin-right: 0;
      margin-left: 20px;
    }
  }
}

そこで、セレクタ名で変数を使用する場合はインターポレーションを使用します。インターポレーションは#{$変数名}のように記述します。

.products-item {
  $this: &;

  &-ttl {
    margin-right: 20px;
  }

  &:nth-child(even) {
    #{$this}-ttl {
      margin-right: 0;
      margin-left: 20px;
    }
  }
}

これで以下の通り、正常にコンパイルができます。

.products-item-ttl {
  margin-right: 20px;
}

.products-item:nth-child(even) .products-item-ttl {
  margin-right: 0;
  margin-left: 20px;
}

関連記事

2021.01.27

Sass

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

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

2024.08.02

Sass

ローカル変数をスタイルセットの外側で使用

通常Sassのローカル変数はスタイルセットの外側で使用することができません。セレクタ名の一部で変数を使用する場合、以下のように記述すると定義されていない変数を参…

2024.06.27

Sass

@contentを利用してmixinにスタイルセットを渡す

mixinの中で@contentを記述すると、呼び出し側から渡されたCSSの記述(スタイルセット)を@contentが書かれた場所で展開します。 以下はhove…

2020.09.30

Sass

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

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

2025.07.05

Sass

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

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

上に戻る