scssで変数を参照する際に使われる
#{$変数名}は$変数名と何が違うのでしょうか。
お手数おかけ致しますが、宜しくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答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
総合スコア596
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/08/22 23:49