- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
如何在 LESS css 中增加一个变量?
这是例子..
@counter: 1;
.someSelector("nameOfClass", @counter);
@counter: @counter + 1;
.someSelector("nameOfClass", @counter);
上面的代码片段会导致这个“语法错误”
SyntaxError: Recursive variable definition for @counter
是否有解决此错误的方法?例如,是否有像@counter++ 这样的符号?
谢谢..
最佳答案
参见 the documentation on LESS variables .本质上,LESS 变量是其创建范围内的常量。它们是延迟加载的,不能以这种方式“更改”。最后一个定义将用于该范围内的所有定义。在您的情况下会发生错误,因为变量无法引用自身。
考虑这个例子:
@counter: 1;
.someSelector("nameOfClass", @counter);
@counter: 2;
.someSelector("nameOfClass1", @counter);
.someSelector(@name; @count) {
@className: ~"@{name}";
.@{className} {
test: @count;
}
}
两者的输出都是2
:
.nameOfClass {
test: 2;
}
.nameOfClass1 {
test: 2;
}
这是因为 LESS 使用该范围内变量的最后定义定义了 @counter
。它不关注使用 @counter
的调用的顺序,而是更像 CSS 并考虑变量的“级联”。
要在 LESS 中对此进行进一步讨论,您可以跟踪发生在 this LESS feature request 上的讨论。 .
最大七相 linked他认为这是 LESS 中的错误,但我认为不是。相反,在我看来,它是创造性地使用计数器的递归重置来获得所需的效果。这允许您像这样实现您想要的(使用我的示例代码):
// counter
.init() {
.inc-impl(1); // set initial value
} .init();
.inc-impl(@new) {
.redefine() {
@counter: @new;
}
}
.someSelector(@name) {
.redefine(); // this sets the value of counter for this call only
.inc-impl((@counter + 1)); // this sets the value of counter for the next call
@className: ~"@{name}";
.@{className} {
test: @counter;
}
}
.someSelector("nameOfClass");
.someSelector("nameOfClass1");
这是 CSS 输出:
.nameOfClass {
test: 1;
}
.nameOfClass1 {
test: 2;
}
注意:我相信您在这里并不是严格地更改全局值,而是在每次调用 .someSelector
时设置一个新的局部值。这是否基于错误行为值得怀疑,但如果是这样,这个解决方案可能会在未来消失。有关此方法的局限性的进一步评论,see the discussion here .
关于css - 在 LESS css 中增加一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199944/
我在尝试使用 WebStorm LESS File Watcher 时遇到此错误 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/
我有一个带有以下结构的 .less 样式表: @width:600; .some-style { width:@{width}px; } 这给出了以下错误: Expected '}' on l
说我有以下结构 /node_modules /src /components /component1 /style /style.less
我想使用灰度函数,但 LESS 一直抛出此错误,我没有看到灰度的 mixin 或如何使用它。有什么帮助吗? Error 148 Expected color in function 'graysc
我的文件较少,如下面的目录结构 vendor/includes/file1.less vendor/includes/file1.less vendor/includes/file1
如果我在 LESS 中定义以下嵌套样式: .nav-bar { .navbar-brand { background: #000; } } .nav-bar {
我正在尝试设置一个使用 lein-less 插件编译 .less 文件的 clojurescript 项目。我应该说我是 clojurescript 的新手。问题是它似乎没有运行。它在我运行“lein
有人会这样使用“less”: var less = require('less'); less.render('.class { width: (1 + 1) }', function (e, css
我正在尝试在一个新元素中测试 less.js。我 100% 确定 javascript 文件加载正常,但我的 css 文件夹中的 less 文件一直出现此错误。我打算在启动之前使用 less.app
我有以下更少: .container { .column, .columns { .one& { width: 40px; }
这是一个代码(test.less): body { padding: 50px; } body { padding: 20px; } 为什么在编译成 CSS 后我有这个: body {
我有一个变量 @index我想输出一个选择器,以便当 @index是 3 , 选择器是 [data-sth="3"] . 更长的例子: @index: 3; /* selector here */ {
假设我有一个使用 Less 定义的样式: ul.unstyled, ol.unstyled { margin-left: 0; list-style: none; } 稍后,我想重新使用 un
假设我有以下 Less 设置: .box { border: 1px solid #333; &.error { background-color: Red; } } 如果我想
我有一个 common.less文件,它为不同的皮肤实现了基本的 CSS: @textColor: black; @iconSize: 16px; .container: { color: @
我创建了使用 LESS 功能切换主题的代码。不幸的是,LESS 文件不会在浏览器中编译。如何在浏览器中编译 LESS 文件? 最佳答案 这是一张documentation : Client-side
我想使用 less 来定位类中的特定元素。 在这种情况下,我想定位类 button 的元素,但在此范围内我想定位一个 anchor 标签 a . 目前我有: .button { /* lots
我正在努力做某事。我的项目是这样的: /app /assets /components /stylesheets /less
我目前正在一个项目中使用 Twitter Bootstrap,包括 LESS 文件并使用我们编写的一些附加 LESS 代码进行编译。 最新版本意味着我们需要覆盖一些 Bootstrap LESS 变量
我有这个更少的代码,这工作得很好。我只是想在 less cli 编译它时节省一些空间。 .secondary-content { background: #ffcc80; color:
我是一名优秀的程序员,十分优秀!