Less模式匹配

可以通过传递参数来改变它混合的行为。
考虑一个简单的 Less 的代码片段:
.mixin(@a; @color) { ... }

.line {
  .mixin(@color-new; #888);
}
您可以使用 @color-new 不同的值,来设置 mixin 的行为,如下面的代码。
.mixin(dark; @color) {
  color: darken(@color, 15%);
}
.mixin(light; @color) {
  color: lighten(@color, 15%);
}

@color-new: dark;

.line {
  .mixin(@color-new; #FF0000);
}
如果设置@color-new 为黑暗(dark)值,那么它就会在较暗的颜色显示的结果作为 mixin 定义黑暗匹配第一个参数。

示例

下面的例子演示了 LESS 文件使用模式匹配:
<!doctype html>
<head>
   <title>Pattern Matching</title>
   <link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
   <h2>Example of Pattern Matching</h2>
   <p class="myclass">Welcome to zaixian zaixian...</p>
</body>
</html>
接下来,创建文件 style.less。

style.less

.mixin(dark; @color) {
  color: darken(@color, 15%);
}
.mixin(light; @color) {
  color: lighten(@color, 15%);
}

@color-new: dark;

.myclass {
  .mixin(@color-new; #FF0000);
}
你可以编译 style.less 使用下面的命令来生成 style.css 文件:
lessc style.less style.css
接着执行上面的命令,它会自动创建 style.css 文件,下面的代码:

style.css

.myclass {
  color: #b30000;
} 

输出结果

让我们来执行以下步骤,看看上面的代码工作:
  • 保存上面的HTML代码在 pattern-matching.html 文件。
  • 在浏览器中打开该HTML文件,得到如下输出显示。


上一篇: Less高级参数和@rest变量 下一篇: Less参数化混合