【问题标题】:LESS css syntax error when referencing variable from namespace从命名空间引用变量时 LESS css 语法错误
【发布时间】:2011-12-28 16:07:56
【问题描述】:

尝试从 LESS 中的命名空间引用变量时遇到语法错误:

#testns {
    @my_color: #04ffff;
    .me() {
        color: blue;
    }
}

.fun {
    color: #testns[@my_color];
}

如果我执行以下操作,mixin 可以正常工作:

.fun {
    #testns > .me();
}

但由于某种原因,我无法从命名空间中引用该变量。我正在使用 asual 库在 Java 中构建这些,其他一切都运行良好。

【问题讨论】:

  • 我不认为命名空间是这样工作的。您可以在命名空间中设置局部变量并在混合规则中引用它们,但您不能直接访问变量(AFAIK)
  • @Mathletics:感谢您的评论,它帮助了我。您为什么不将其发布为答案?

标签: less


【解决方案1】:

这不是命名空间的工作方式。命名空间允许您声明要在 mixins 中使用的局部范围变量(有点像 CSS 闭包,哈哈!),并且可以从命名空间包外部引用 mixins。但是,命名空间内的变量是私有的,不能从命名空间外引用。

【讨论】:

  • 来自lesscss.org:“有时,出于组织目的,您可能希望对变量或mixin 进行分组……”也许它们应该使文本不那么模棱两可。
  • @zanona 你是绝对正确的。它们没有明确声明不能从外部访问变量,尽管您可以从下一节有关范围界定的内容中推断出来。解析器实际上并不知道id 选择器声明和#namespace 块之间的区别,只是后者没有声明的规则,只有变量和混合。所以,至少现在,变量被困在它们的范围内。
  • 文档已更新以更清楚地说明其工作原理:github.com/less/less-docs/pull/154/files
猜你喜欢
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 2019-08-29
  • 1970-01-01
相关资源
最近更新 更多