質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

Q&A

解決済

1回答

5292閲覧

【scss】#{$変数名}につきまして

l_l

総合スコア38

Sass

Sassは、プログラミング風のコードでCSSを生成できるスタイルシート言語です。 scss ファイルを、変換(コンパイル)してCSSファイルを作成します。

0グッド

0クリップ

投稿2015/08/22 16:00

scssで変数を参照する際に使われる
#{$変数名}は$変数名と何が違うのでしょうか。
お手数おかけ致しますが、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

$変数名 は値として出力される、
#{$変数名}は文字列として展開されて出力されるって感じです。

scss

1$dir: '/img/'; 2$margin: 5px; 3.foo { 4 /* $dir は値なので + で文字列連結 */ 5 background-image: url( $dir + "/foo.img" ); 6 /* $margin は値として出力されるので、計算してくれる */ 7 margin-top: $margin + 3px; 8} 9.bar { 10 /* #{$dir}は文字列なので 記述位置にそのまま出力される */ 11 background-image: url("#{$dir}/foo.jpg"); 12 /* #{$margin} は文字列なので + 3px がそのまま後ろに付く*/ 13 margin-top: #{$margin} + 3px; 14}

css

1.foo { 2 background-image: url("/img/foo.jpg"); 3 margin-top: 8px; 4} 5 6.bar { 7 background-image: url("/img/foo.jpg"); 8 margin-top: 5px + 3px; 9}

#{$変数名} が元々そこにある文字列として扱われるので、セレクタを変数にすることができます。

scss

1@for $i from 1 through 3 { 2 /* { } 内で計算が行われた結果が、そこにある文字列として出力される */ 3 mt#{$i * 5} { 4 margin-top: $i * 5px; 5 } 6}

css

1mt5 { 2 margin-top: 5px; 3} 4mt10 { 5 margin-top: 10px; 6} 7mt15 { 8 margin-top: 15px; 9}

!注意

scss

1@for $i from 1 through 3 { 2 /* #{$変数名}でない変数をセレクタに使おうとするとエラーになる。 */ 3 mt + ($i * 5) { 4 margin-top: $i * 5px; 5 } 6}

投稿2015/08/22 21:58

KiKiKi_KiKi

総合スコア596

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

l_l

2015/08/22 23:49

度々ご説明ありがとうございます。 理解できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問