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 Yiibai Yiibai...</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檔案,得到如下輸出顯示。