sass - 有没有办法通过 SASS 中的类传递参数?
问题描述
我想要实现的是这样的:
.indent-me-($num) {
text-indent: ($num * 2.5em);
}
因此,如果我将类添加indent-me-10
到某个元素,它将收到 style text-indent: 25em
。我想这样做是因为 1)我需要相当大的灵活性(可能不会超过 4 级左右的“缩进”,但我喜欢涵盖所有基础——这些类将由 javascript 生成逻辑上,我不会将它们硬编码到 HTML 中),并且 2),我不想用像 SASS 这样聪明的语言编写类似下面的东西。我对它的所有复杂性都不是很熟悉,所以我觉得我一定错过了一些东西。
.indent-me-1 { text-indent: 2.5em; }
.indent-me-2 { text-indent: 2 * 2.5em; }
.indent-me-3 { text-indent: 3 * 2.5em; }
.indent-me-4 { text-indent: 4 * 2.5em; }
...
解决方案
您可以通过结合使用 SCSS 插值和循环来实现此目的。
使用 sass 插值#{$variable}
$num: 1;
.indent-me-#{$num} {
text-indent: ($num * 2.5em);
}
和一个@for
循环来做到这一点
@for $num from 1 through 10 {
.indent-me-#{$num} {
text-indent: ($num * 2.5em);
}
}
推荐阅读
- python - ImportError:无法从“六”导入名称“ensure_str”
- angular - 将变量传递给firestore where查询(Angular)
- javascript - 如何为函数创建方法?
- python - Python tkinter 问题在调整窗口大小时更改小部件的数量
- python - Python Pandas 年初至今与去年年初至今(YTD、LYTD)
- json - 为相关下拉/输入字段的动态呈现定义模式
- angular - 如何使用反应形式的项目创建 ng-select
- java - 为什么当我想访问这个片段时,我的应用程序失败了?安卓工作室
- types - 在模式匹配 F# 中使用类型测试解构内联
- charts - 如何为谷歌时间线图表中的每个栏着色?