LESS - 向Mixin传递规则集



描述

分离的规则集包含规则集,例如属性、嵌套规则集、变量声明、Mixin 等。它存储在一个变量中,并包含在另一个结构中;规则集的所有属性都会复制到该结构中。

示例

以下示例演示如何在 LESS 文件中向 Mixin 传递规则集:

passing_ruleset.htm

<!doctype html>
   <head>
      <link rel = "stylesheet" href = "style.css" type = "text/css" />
   </head>

   <body>
      <div class = "cont">
         <h2>Welcome to TutorialsPoint</h2>
         <p>The largest Tutorials Library on the web.</p>
      </div>
   </body>
</html>

接下来,创建style.less 文件。

style.less

@detached-ruleset: {
   .mixin() {
      font-family: "Comic Sans MS";
      background-color: #AA86EE;
   }
};

.cont {
   @detached-ruleset();
   .mixin();
}

您可以使用以下命令将style.less 文件编译为style.css

lessc style.less style.css

执行上述命令;它将自动创建包含以下代码的style.css 文件:

style.css

.cont {
   font-family: "Comic Sans MS";
   background-color: #AA86EE;
}

输出

按照以下步骤查看上述代码的工作原理:

  • 将上述 html 代码保存到passing_ruleset.htm 文件中。

  • 在浏览器中打开此 HTML 文件,将显示以下输出。

Less passing ruleset to mixin

作用域

分离规则集中的所有变量和 Mixin 在调用或定义规则集的任何地方都可用。否则,调用者和定义作用域默认情况下都可用。当两个作用域都包含相同的 Mixin 或变量时,声明作用域优先。分离规则集的主体在声明作用域中定义。在分离规则集从一个变量复制到另一个变量后,它的作用域不会改变。

下表列出了所有类型的作用域:

序号 类型和描述
1 定义和调用者作用域可见性

变量和 Mixin 在分离规则集中定义。

2 引用不会修改分离规则集的作用域

仅给出引用,规则集不会访问任何新作用域。

3 解锁将修改分离规则集的作用域

分离规则集可以通过导入到其中来访问作用域。

广告