【问题标题】:Less extend from imported file not working vs mixin from imported file来自导入文件的较少扩展不起作用与来自导入文件的混合
【发布时间】:2014-03-19 16:58:22
【问题描述】:

用下面两个文件a.lessb.less

a.less:

.red {
    background: red;
}

b.less:

@import "a.less"

.testA:extend(.red) {
}

.testB {
    .red;
}

b.css 的结果是:

.testA {}
.testB {
    background: red;
}

为什么扩展不适用于 .testA 的导入 mixin/类定义?扩展语法是否存在要求扩展定义出现在同一文件中的限制,即这是预期的行为吗?

请注意,如果我将 .red mixin 移动到 b.less.testA 会正确编译。

编辑:我正在使用更少的二进制预编译器,版本 1.6.1

编辑:为了绝对确定拼写错误,并且我认为没有允许更少文件和导入的在线服务,请下载示例源代码 here - 事实上 .testa{} 赢了' 根本不会被渲染,但 b.css 自然定义了一个 .red 类。

编辑:当我从 bash 编译时,扩展工作正常,但使用 less.app GUI 或通过我的 IDE(使用与 bash 相同的命令)或通过 local file watcher 进行编译时,扩展不会正确包含 - 这可能与调用二进制文件的位置有关吗?

【问题讨论】:

  • 应该的。您使用哪个 Less 版本进行测试?
  • 只是检查,但也许这是一个错字——至少在上面的例子中你使用的是:extends ...它应该是:extend(没有尾随的s)。否则,正如@seven-phases-max 所说,它应该正常工作。
  • @MartinTurjak 仅在问题中输入错误,已修复,但问题仍然存在。
  • 正如@seven-phases-max 所问,LESS 是什么版本,是 less.js 还是 php 版本,还是您用来编译的版本?
  • "less.app" 附带不支持 extend 的 Less 1.3.3。其余的看起来你有两个不同的lessc版本(1.3.3和1.6.1)从你的控制台/IDE调用...... 1.3.3不会为:extend(...)抛出错误,因为它被视为有效的CSS选择器(但由于规则集为空,因此从输出中删除)。

标签: css less mixins extend


【解决方案1】:

正如@seven-phases-max 所指出的,问题在于 GUI 工具中提供的 less 预处理器的不同版本,它没有 :extend 功能。

【讨论】:

    猜你喜欢
    • 2021-07-09
    • 1970-01-01
    • 2021-03-08
    • 2021-01-03
    • 2020-05-07
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多