css - 将 Sass 占位符与变量一起使用

标签 css sass

我试图循环出一系列标题字体大小,每个标题级别都有一个变量,但我无法将变量名称声明为占位符。

_variables.scss

$h1-font-size: 2.5rem;
$h2-font-size: 2.25rem;
$h3-font-size: 2rem;

_heading-loops.scss

@for $i from 1 through 3 {
   h#{$i} {
      font-size: $#{i}-font-size;
   }
}

期望 CSS 输出

h1 { font-size: 2.5rem; }
h2 { font-size: 2.25rem; }
h3 { font-size: 2rem; }

我原以为这会成功,但不幸的是它抛出了以下错误:

error scss/utilities/functions/_headings.scss (Line 37: Invalid CSS 
after "      font-size: ": expected expression (e.g. 1 px, bold), was 
"$#{i}-font-size;")

我希望得到一些关于这个的建议,因为我已经挠头太久了,在此先感谢。

最佳答案

通过使用您自己的代码的小变通方法,我能够获得预期的输出。

$h1: 2.5rem;
$h2: 2.25rem;
$h3: 2rem;

$htags: $h1, $h2, $h3;

@for $i from 1 through length($htags) {
  h#{$i} {
    font-size: nth($htags, $i);
  }
}

我在 https://www.sassmeister.com/ 试过了, 它完美地工作

注意:您可以创建一个列表并使用 nth 方法获取值,而不是使用插值生成变量名称:)

关于css - 将 Sass 占位符与变量一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51592696/

相关文章:

css - 是否有 CSS 父级选择器?

html - 通过 CSS 应用透明覆盖

javascript - Grunt 监视任务而不是文件?

css - 粘性 flexbox 页脚未固定到底部

css - 如何在 Susy2 的流体网格系统中制作静态元素宽度

css - SASS 监视 N 个文件夹而不定义它们

javascript - 如何用CSS创建一个不受页面缩放影响的div背景

jquery - 单击按钮时,所有文本都显示在同一个 div 上,我希望它有所不同

javascript - 扩展列表将其他相对定位的元素向上推——它们应该保持不动

css - 如何将两种特定颜色之间的阶梯式渐变生成为单独的类