- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在编写 CSS 时主要使用 SASS,现在我也准备尝试使用 LESS。通读文档后,我对 guarded mixins 的上下文感到困惑:
Additionally, the keyword true is the only truthy value, making these two mixins equivalent:
.truth (@a) when (@a) { ... }
.truth (@a) when (@a = true) { ... }Any value other than the keyword true is falsy:
.class {
.truth(40); // Will not match any of the above definitions.
}
为什么 truth(40)
不匹配第一个 mixin? when (@a)
不会简单地声明只有在给 @a
一个值(any 值)时才匹配 mixin,本质上,如果 @a
存在?由于 40
是一个存在的值,为什么它在给定的 mixin 中找不到匹配项?
最佳答案
……我想。 LESS 的程序员似乎假设如果你不想在 mixin 上有一个 guard,那么你当然根本没有放置任何 when
语句:
.truth(@a) { ... }
无论 @a
的值如何,都会调用此 mixin,但需要 @a
的值,检查也是如此默认值的“存在”。因此,通过 添加 的 when
守卫,他们假设确实有人想要一个进一步的守卫(而不仅仅是允许任何值),等等……
.truth (@a) when (@a) { ... }
...提供了一种编写保护语句的速记方式(LESS 旨在加快编码速度)...
.truth (@a) when (@a = true) { ... }
这使得守卫的纯真/假开关的编码速度更快,并且如果它改为评估 when (@a)
对于任何值都为 true
。
诚然,从典型的编程观点来看,它有点不直观(没有双关语意),如果 @a
存在(如任何东西除了 false
、null
或 0
之外,那么短语 when (@a)
的计算结果将是 真
。但是他们没有检查一个值的“存在”,而是检查一个显式检查一个 passed true
的值(他们唯一的就 guard 而言,“真实值(value)”)。
除了 lesscss.org 上关于他们如何编码的声明之外,我没有任何文档来支持我在这里的声明,但没有说明为什么 他们将其编码为以这种方式工作(这部分是我目前的猜测,除非我能找到关于它的讨论文档)。
关于css - LESS docs on guarded mixins——为什么这条规则不匹配任何mixin?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17991112/
我在尝试使用 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:
我是一名优秀的程序员,十分优秀!