iT邦幫忙

2022 iThome 鐵人賽

DAY 14
0
Modern Web

菜鳥30日自學SASS及SCSS系列 第 14

【D-14】插值#{}

  • 分享至 

  • xImage
  •  

通常是指變數插值,或者變數替換。
插值幾乎可以在 Sass 樣式表中的任何地方使用。

例如:

// scss //
@mixin generate-sizes($class, $short, $middle, $long) {

    .#{$class}-short { font-size: $short; }

    .#{$class}-middle { font-size: $middle; }

    .#{$class}-long { font-size: $long; }

}

@include generate-sizes("header-text", 10cm, 20cm, 30cm);

編|
譯| 設置屬性值的時候可以使用字符串插入。
後|
 V

.header-text-short {
  font-size: 10cm;
}

.header-text-middle {
  font-size: 20cm;
}

.header-text-long {
  font-size: 30cm;
}

# 但需特別注意插值語法並不是隨處可用

  • 適用 @extend
// scss //
%updated-Title {
  margin-top: 10px;
  background: #f09;
}
.selected-Title {
  font-weight: heavy;
}
$flag: "Title";
.navigation {
  @extend %updated-#{$flag};
  @extend .selected-#{$flag};
}

編|
譯| 在 @extend 可以動態的插入 .class 和 %placeholder
後|
 V

// css //
.navigation {
  margin-top: 10px;
  background: #f09;
}

.selected-Title, .navigation {
  font-weight: heavy;
}
  • 不適用 @mixin
// scss //
@mixin updated-status {
    margin-top: 20px;
    background: #F00;
}
$flag: "status";
.navigation {
    @include updated-#{$flag};
}

編|
譯| 在 @mixin 無法編譯成功。
後|
 V

error style.scss (Line 7: Invalid CSS after "...nclude updated-": expected "}", was "#{$flag};")

上一篇
【D-13】比較:混入 、 繼承、佔位符
下一篇
【D-15】SASS 數學運算加減乘除
系列文
菜鳥30日自學SASS及SCSS30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言