Html 为什么赢了';这不是在编译时减少css大小吗?
我正在尝试创建一个mixin,它将采用两个参数,并以px和rem调整输出大小。下面是代码:Html 为什么赢了';这不是在编译时减少css大小吗?,html,css,compiler-errors,less,Html,Css,Compiler Errors,Less,我正在尝试创建一个mixin,它将采用两个参数,并以px和rem调整输出大小。下面是代码: .sizing (@cssProperty; @sizeValue) { @cssProperty: ((@sizeValue * @basefont) * 1px); @cssProperty: (@sizeValue * 1rem); } 用法如下: h2 { .sizing(font-size; 1) } 应该输出哪一个(取决于定义的基本字体大小): 但是simpLESS不会编译它,
.sizing (@cssProperty; @sizeValue) {
@cssProperty: ((@sizeValue * @basefont) * 1px);
@cssProperty: (@sizeValue * 1rem);
}
用法如下:
h2 {
.sizing(font-size; 1)
}
应该输出哪一个(取决于定义的基本字体大小):
但是simpLESS不会编译它,并且说这两行代码中有一个错误:
.sizing (@cssProperty; @sizeValue) {
.sizing(font-size; 1);
我做错了什么?这是因为变量属性名吗?刚刚注意到,您试图使用变量作为属性名,而不是less不支持的值 在这个答案中有一个突出显示为解决方法的黑客:
LESS不允许将变量用作CSS属性名 在您上面的代码中
@cssProperty:(@sizeValue*@basefont)*1px)
实际上是新的@cssProperty
变量的定义,而不是CSS属性:value
语句,因此它不生成CSS输出
不过,对于您想要实现的目标,有一个变通方法,请参见,等等。这很奇怪,他们的网站上说建议使用分号:参数可以是分号,也可以是逗号分隔的。建议使用分号。不确定,以前从未用过分号。让我知道这是否有效。它会返回一个编译器错误,所以我想它不会:)。可能是编译器。顺便说一句,在您的更改之后,它编译时不会出错,但mixin不会返回任何内容(因此,在我的示例中没有字体大小),您知道它为什么不工作吗?说到参数列表中的逗号与分号-嗯,这只是一个或两个开发人员在较少的。。。事实上,在某些(非常罕见且非常高级的用例)情况下,在CSS值中扩展这些变量时,逗号可能会产生一些意想不到的副作用(主要是因为许多CSS属性也使用逗号作为其值分隔符)。。。但是更少的社区仍然使用逗号(毫无疑问,出于明显的原因,会使用逗号),所以如果您选择使用分号,请准备好让您的代码读者震惊:)我认为这可能是您的
@cssprroperty
声明中的语法错误。检查此项:可能重复的
.sizing (@cssProperty; @sizeValue) {
.sizing(font-size; 1);
.mixin(@prop, @value) {
Ignore: ~"a;@{prop}:@{value}";
}