如何使用LESS将变量声明为!important?

Fiz*_*zix 4 css less

是否可以将变量声明为!importantLESS?目前,我收到以下语法错误.

例如:

@fontColor: #000000 !important;

p {
    color: @fontColor;
}
Run Code Online (Sandbox Code Playgroud)

应呈现为:

p {
    color: #000000 !important;
}
Run Code Online (Sandbox Code Playgroud)

我知道有一种逃避的方法在这里提到,使用以下内容:

@fontColor: #000000 ~'!important';
Run Code Online (Sandbox Code Playgroud)

很久以前有人谈到将它作为简单的语法实现,就像我的第一个例子一样,只是不确定他们是否做过 - https://github.com/less/less.js/issues/1401

使用Visual Studio 2013(更新4)

fal*_*lla 6

该接受的答案并没有为我工作(我想这是由于版本,也许).

OP的问题本身提到的解决方法是有效的,我一开始没有看到.

万一发生在其他人身上,请尝试以下方法:

// !important doesn't work
@fontColor: #000000 !important;

// !important works!
@fontColor: #000000 ~'!important';
Run Code Online (Sandbox Code Playgroud)

资源


Bas*_*sen 5

我认为您的声明@fontColor: #000000 !important;确实没有任何意义,您要分配什么?一个字符串,一些东西?最合理的是一个字符串,使用时应将其引起引用并转义:

因此,以下代码对我来说似乎是正确的

@fontColor: "#000000 !important";

p {
    color: ~"@{fontColor}";
}
Run Code Online (Sandbox Code Playgroud)

我还发现以下代码:

@wrong: red noncolor;
selector {
property: @wrong;
}

@wrongtoo: red !important;
selector {
propertytoo: @wrongtoo;
}
Run Code Online (Sandbox Code Playgroud)

输出:

selector {
  property: red noncolor;
}
selector {
  propertytoo: red;
} 
Run Code Online (Sandbox Code Playgroud)

在两种情况下,编译器(Less v2)均不会引发错误。但是在第二种情况下!important没有在CSS代码中编译。也可以red !noncolor编译成CSS代码。可能!important是某种关键字,但对我而言,目前看来在编译器中没有什么影响。

另请注意,该文档!important在http://lesscss.org/features/#mixins-feature-the-important-keyword中描述了如何与mixins 结合使用