2

我正在尝试使用一个.flexbox接受参数的 mixin @orient,它也应该自动应用box-orient。将它与 结合使用时!important,我遇到了一个错误,该错误也可以通过更缩小的测试用例重现:

.foo() {
  .bar;
}

.bar {
  color: red;
}

body {
  .foo() !important;
}

这使得 LESS 抛出一个错误(我在 node.js 中使用它):

C:\...\node_modules\less\lib\less\parser.js:385
                        throw new(LessError)(e, env);
                              ^
TypeError: Cannot call method 'charAt' of undefined

奇怪的是,使用.foo而不是.foo()按预期工作:

.foo {
  .bar;
}

.bar {
  color: red;
}

body {
  .foo !important;
}

我究竟做错了什么?

4

1 回答 1

1

快速搜索让我找到了这个错误报告。这是一个已知问题。

https://github.com/cloudhead/less.js/issues/740

老实说,我建议您尝试以其他方式完成您想做的事情。在撰写本文时,less.js 的积压是 417 个大问题。它不太可能很快得到修复。

(是的,就是这个错误报告,您通过使用 .bar 扩展 .foo 创建了一个嵌套规则)

于 2012-06-16T23:20:59.720 回答