263
138

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SCSSの変数と、CSS3のcalc()を併用するには

Last updated at Posted at 2016-06-20

SCSSの変数が展開されず文字列としてそのままCSSに出力される問題の解決法です。

こんなSCSSを書いたとするよ。

scss
$var: 300px;
.box {
	width: calc( 100% - $var );
}

コンパイル結果(.css)は、

css
/* これが理想だけど */
.box {
	width: calc( 100% - 300px );
}

/* 現実はこう(`$var`が展開されず、SCSSがCSSとしてそのまま出力される・・) */
.box {
	width: calc( 100% - $var );
}

これをどうすればいいかというと、こうすればいいらしい。

scss
$var: 300px;
.box {
    width: calc( 100% - #{$var} );
}

半角スペースも必要

ちなみに calc() の話ですが、四則演算記号の前後には半角スペースが必要です。
これじゃダメ。

scss
$var: 300px;
.box {
    width: calc( 100%-#{$var} );    // NG
    width: calc( 100% - #{$var} );  // Good
}

おわりに

知らないとそんなことになっているなんて気づきもせずにハマってしまうポイントですね…。

263
138
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
263
138

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?