html - Sass Mixin 值未在从@include 调用时传递

标签 html css sass

我有几个部分(比如 _one.scss 和 _two.scss)正在调用 SASS。 _one.scss 有以下代码

@mixin wire($num) {
 .parts-field {
  height: 100%;
width: calc(100% * (1/$num) - 10px - 1px);
}

并且在 _two.scss 中有 .mytry { @include电线(3); }

在我的 main.scss 中正在执行以下操作

@import "../../base/_one.scss"; 
@import "_two.scss";

当我检查 ma​​in.css 时,它显示以下内容:

.mytry .parts{
height: 100%;
width: calc(100% * (1/$num) - 10px - 1px);
}

尽管我说的是 @include wire(3),但我相信 3 没有通过。样式也不适用于 HTML。将参数传递给 mixins 是否存在根本性错误?

最佳答案

您需要使用字符串插值,即将$num替换为#{$num}:

@mixin wire($num) {
  .parts-field {
    height: 100%;
    width: calc(100% * (1/#{$num}) - 10px - 1px);
  }
}

之所以需要这样做,是因为SASS会将(...)视为必须在编译期间求值的计算,而它不知道calc(... ) 应解释为字符串而不是数学表达式。

关于html - Sass Mixin 值未在从@include 调用时传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43958204/

相关文章:

gem - Sass/Compass CSS3 mixins不起作用

javascript - 从左到右依次滚动列表标签内容

Javascript如何使函数在其他函数上工作

html - 输入渲染文本大于 CSS 中定义的大小

jquery - div 的条纹类

sass - 如何在 Sencha Touch 2.2 Tabpanel 应用程序中设置事件图标颜色

typescript - 如何从.net core 2.1 Angular 6模板中的非相对路径导入ts和scss文件

html - div中的中间文本

javascript - 有没有办法创建 "inline-none"CSS 效果?将被隐藏,但保留它在页面上占用的空间

html - 在所选标题之间应用 CSS 样式