【问题标题】:LESS: Inheritance using a variableLESS:使用变量的继承
【发布时间】:2014-02-06 07:44:37
【问题描述】:

我是第一次学习使用 CSS 预处理器 (LESS),但在尝试定义一个继承类的类时遇到了麻烦,而该类的父类是变量名。

这基本上是我想做的:

@import "font-awesome/font-awesome.less"

.icon-application-home{
    .fa .fa-home;
}

但是因为 fa 在 Font Awesome 中是这样定义的:

@fa-css-prefix:       fa;

那么less 将无法编译,因为它无法识别.fa。所以我尝试了这个:

@import "font-awesome/font-awesome.less"

.icon-application-home{
    .@{fa-css-prefix} .@{fa-css-prefix}-home;
}

但是,这也不起作用。有什么解决方法吗?我可以在这里做什么?

编辑

我在这里找到了一半的答案:

Missing Font-Awesome.less variables in my .less file after importing

如果我执行以下操作,这(部分)有效:

@import (less) "../font-awesome.css";

.icon-home {
    .fa;
}

但是,我注意到.fa-home 不存在...只有.fa-home:before...所以我尝试了这个:

@import (less) "../font-awesome.css";

.icon-home {
    .fa;
    .fa-home:before;
}

@import (less) "../font-awesome.css";

    .icon-home {
        .fa;
    }
    .icon-home:before {
        .fa-home:before;
    }

这些都不起作用。有什么想法吗?

【问题讨论】:

  • 我不得不说马特,你的代码对我有用……也许是本地问题?
  • @NicholasHazel:你用什么来编译 LESS?我正在尝试使用 Web Essentials 2012 for Visual Studio。
  • @NicholasHazel:?!?!那是什么样的答案?它与我的问题有什么关系?我只问你是用什么编译器来实现 LESS...Web Essentials、SimpLESS 还是什么?
  • 我很抱歉。 I can't help you with your problem. 那将是一个更好的声明。 删除之前的评论我的意思是,不要使用visual studio

标签: css less font-awesome web-essentials


【解决方案1】:

假设您使用包含 Less 1.4.2 的 WE2012,最简单的解决方案是:

@import (less) "../font-awesome.css";

.icon-application-home {
    &:extend(.fa, .fa-home all);
}

或者:

@import (less) "../font-awesome.css";

.icon-application-home
    :extend(.fa, .fa-home all) {

}   

阅读extend documentation 了解有关这些东西如何工作的详细信息。


如果您升级到包含 Less 1.6.x 的 IDE/编译器,您将能够:

@import ".../font-awesome.less"

.icon-application-home {
    .fa;
    &:before {content: @fa-var-home}
}

你仍然不能使用.fa-home.fa-home:before 作为mixin,因为第一个没有定义,第二个不是有效的mixin 选择器,幸运的是&:before {content: @fa-var-home} 正是.fa-home 所做的。 但总的来说,基于extend 的解决方案更优化,因为它产生更紧凑的 CSS。

【讨论】:

  • 谢谢!顺便说一句,有没有办法只用我拥有的 .less 文件做同样的事情? .fa 是变量 (@{fa-css-prefix}) 的那个?
  • 我已经用另一种方法更新了我的答案(前提是您需要 Less 1.6.x)。
猜你喜欢
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 2015-12-09
  • 2014-10-06
  • 2016-06-01
相关资源
最近更新 更多