我正在使用Stylus版本0.44.0 ...
我简化了这个例子,但这是我的问题:
color-all-the-things()
div
{block}
body
+color-all-the-things()
background: red
正在编译为:
body +color-all-the-things(){background:#f00}
它基本上像块选择器一样处理块mixin。
预期输出为:
body div {
background: red
}
答案 0 :(得分:1)
根据手写笔项目首页(http://learnboost.github.io/stylus/docs/mixins.html#block-mixins)中的示例,语法如下:
混合定义
foo()
.bar
{block}
混合使用
+foo()
width: 10px
结果
=> .bar {
width: 10px;
}
所以在你的情况下,我猜它就像你写的那样:
color-all-the-things()
div
{block}
...
body
+color-all-the-things()
background: red
由于这也会在在线编辑器(http://learnboost.github.io/stylus/try.html)中产生预期的输出,我们可以假设你做对了;)
我能想到的就是检查你的工具链。确保您拥有最新的稳定版本,或降级为一个。或者,如果您尝试升级到最新的开发版本。它特别指出这个功能处于粗糙状态"在文档中,所以可以假设在最近的版本中它可能存在一些问题。
如果问题仍然存在,请打开问题:https://github.com/LearnBoost/stylus/issues