【发布时间】:2016-05-31 21:30:20
【问题描述】:
我在使用 Bourbon Neat 的 omega() 函数时遇到了一些奇怪的问题,因此我查看了 source code,在那里我看到了 nth() 函数的使用。
在 SassMeister I see that all Sass engines produce the same weird output 中试用 nth 后:
input.scss
.foo {
content: nth(5n + 3, 1 );
}
会产生
output.css
.foo {
content: 8n;
}
如您所见,它对我的表情做了一些奇怪的“数学运算”。似乎 Sass 试图将这两个元素结合起来,尽管它在数学上没有意义。
这对使用这个函数的 mixins 有一些不好的后果,因为我希望 @include omega(4n+4) 创建一个 4n+4 的伪选择器(跳过前 4 个,然后应用到每个 4、8、12...) ,但它会创建 8n (适用于每 8 个元素)。
这有什么合乎逻辑的原因吗?或者这只是成为规范的早期错误?可以避免吗?
【问题讨论】:
-
您期望发生什么?
nth方法应该从列表中返回特定项目。 -
是的,它应该返回
5n + 3作为第一个元素。 -
例如,
nth(1 2n + 1 3, 2 );要求返回列表的第二个元素,即2n+1。它会这样做,但在此过程中会将其转换为3n。 -
@EvanTrimboli 是否有替代
nth的方法可以保持列表元素不变? Sass 在返回列表元素之前尝试添加数字是一个大问题。