css - LESS 编译器说参数未定义

标签 css parameters compiler-errors less undefined

在我的代码中,我使用了 LESS 模式匹配混合宏。当我尝试将一个参数传递到我的 mixin 中时,出现错误。

这是我的代码:

.slide(parallax; @bg, @padding) {
    background: url(@bg) 50% 0 fixed;
    height: auto;  
    margin: 0 auto; 
    width: 100%; 
    position: relative; 
}

.slide(np; @bg, @padding) {
    background-color: @bg;
}

.slide(@_; @bg, @padding) {
    padding: @padding 0;
}

@slide: parallax;
#ghp {
    .slide(@slide; "../images/ghp.png", 12%);
}

编译时会抛出这个错误:

variable @bg is undefined

为什么会抛出此错误,我该如何解决?

最佳答案

Quoting Less Website

If the compiler sees at least one semicolon inside mixin call or declaration, it assumes that arguments are separated by semicolons and all commas belong to CSS lists.

上面的意思是,当你以下面的格式调用 mixin 时,mixin 调用只有 2 个值(或参数)。第一个参数具有 @slide 变量的值,第二个参数是整个剩余部分(即 "../images/ghp.png", 12%)。

.slide(@slide; "../images/ghp.png", 12%);

这就是为什么您会收到一个变量未定义的错误消息的原因。这可以通过使用相同的分隔符(分号或逗号,首选分号)来克服。

因此,例如,下面的代码可以完美编译。

.slide(parallax; @bg; @padding) {
    background: url(@bg) 50% 0 fixed;
    height: auto;  
    margin: 0 auto; 
    width: 100%; 
    position: relative; 
}

.slide(np; @bg; @padding) {
    background-color: @bg;
}

.slide(@_; @bg; @padding) {
    padding: @padding 0;
}

@slide: parallax;
#ghp {
    .slide(@slide; "../images/ghp.png"; 12%);
}

关于css - LESS 编译器说参数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27669181/

相关文章:

c++ - 代码块 libcurl 链接问题 Windows 7

java - 正则表达式从区分大小写变为不区分大小写

c++ - C++模板化的quickSort无法与迭代器一起使用,错误C2061

c++ - 阴影参数

C 结构指针作为参数

html - <tr><td> 之间的奇怪空格仅在 iOS 和 Android 上

css - 如何在 R 中使用 render.3dmovie 函数的 vertex.css.class 选项

jquery - 如何在 CSS 中管理#homeSub 的尺寸,以便当我将鼠标从 homeBox 移动到 home Sub 时它不会消失?

css - CSS伪元素:before in multiple classes of same element的使用方法

c++ - 通过引用 C 函数的参数