【发布时间】:2013-06-28 00:15:27
【问题描述】:
我的 sass 文件中有一个错误,我不知道它有什么问题...
这是我拨打.class{ col(6);收到的消息
error scss/components.scss (Line 18: Invalid CSS after "...gin:7px 0; col": expected "{", was "(6);")
这是用于创建函数的函数和变量(如果有点混乱,请见谅):
$columnWidth:40;
$numberOfColumns:16;
$gutterWidth: 20;
$fullWidth:($columnWidth * $numberOfColumns) + ($gutterWidth * $numberOfColumns);
@function perc($target) {
@return (($target / $fullWidth) * 100%);
}
@function gw($n, $fluid: false) {
$calculatedValue: ($n * $columnWidth + ($n - 1) * $gutterWidth);
@if $fluid == false {
@return $calculatedValue + px;
} @else {
@return perc($calculatedValue);
}
}
@function col($n, $fluid: false){
@return unquote("width: gw($n, $fluid);");
}
我要做的就是重新使用gw()函数,这样我就可以在css中使用它来输出列数作为宽度css属性,即grid(4);将输出width: 200px;。
函数 gw 可以正常工作,因为它可以正确生成我的网格 css,但是我想定义一个全局函数以在任何地方使用。因此col() 函数。
【问题讨论】:
-
您忘记添加实际失败的代码。似乎所有这些功能都有效。此外,您不应该将
col设为mixin吗?看看stackoverflow.com/a/12319330/538866 -
我在上课时打电话给
.class{ col(6);",这就是它正在死去的地方。 mixin 会起作用吗?如果我会使用它,但我更喜欢一个函数,主要是因为添加 @JonasG.Drange 很短 -
A
mixin会更容易,因为您可以将 SCSS 放入其中,而不是unquote等等。 :) 但是,是的,你需要在它前面有@include。