css - LESS:与非类规则集混合

标签 css less

在 LESS 中,我试图定义 button.c2规则集,应用于<button class="c2">...</button>元素。该规则集主要基于button.c1规则集。但是,以下代码会产生 ParseError:

button.c2 {
  button.c1;// Trying to import a ruleset
  ... // additional rules, such as font-size: 120%;
}

在我看来,ParseError 是由于导入的规则集未引用类或 ID(“button.c1”不以“.”或“#”开头)而引起的。来自 LESS documentation :

Any CSS class or id ruleset can be mixed-in that way.

为什么会有这样的限制?有什么办法解决吗?

最佳答案

限制可能只是易于解析,因为 .# 不会显示为普通样式规则的第一个字符,解析器会自动知道这些应该混合进去。

您可以通过将.c1定义为mixin并将其用于两个按钮来解决这个问题:

.c1() {
    // c1 rules
}

button.c1 {
    .c1;
}

button.c2 {
    .c1;
    // additional rules
}

但是,LESS 1.4.0 中出现了 :extend 选择器,它允许您做您想做的事情。语法为:

button.c2:extend(button.c1) {
    // additional rules
}

关于css - LESS:与非类规则集混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941270/

相关文章:

css - 添加面板标题 :hover class in bootstrap less does not change the hover color

css - WebMatrix 的 OrangeBits 扩展可能导致崩溃并已被禁用

css - 没有 CMD-S 的实时编辑(类似 CSSEdit)Sass/LESS?

webpack - Less-Loader : Import URLs are being treated as relative URLs, 没有传递 --relative-url 选项

html - 列表中的可自定义 <li> 不起作用

Html - Logo 和导航栏之间的空间

html - 是否可以过滤具有特定类别的部分?

javascript - Bootstrap v 3.2 组件显示(折叠水平面板)

css - 日历的制作方法

javascript - Twitter Bootstrap - 带有 div 内容而不是列表的下拉列表