LESS - 将 Ruleset 传递给 Mixins
描述
Detached ruleset 包含 ruleset 如属性、嵌套 ruleset、变量声明、mixins 等。它被存储在变量中,并包含在另一个结构中;ruleset 的所有属性都会被复制到该结构中。
示例
以下示例展示了如何在 LESS 文件中将 ruleset 传递给 mixin −
passing_ruleset.htm
<!doctype html>
<head>
<link rel = "stylesheet" href = "style.css" type = "text/css" />
</head>
<body>
<div class = "cont">
<h2>Welcome to </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 文件,将显示以下输出。
作用域
Detached ruleset 中的所有变量和 mixins 在 ruleset 被调用或定义的任何地方都可用。否则,调用者和定义作用域默认可用。当两个作用域包含相同的 mixin 或变量时,声明作用域优先。Detached ruleset 主体定义在声明作用域中。从一个变量复制到另一个变量后,其作用域不会改变。
下表列出了所有类型的作用域 −
| Sr.No. | 类型与描述 |
|---|---|
| 1 | 定义和调用者作用域可见性
变量和 mixins 定义在 detached ruleset 内部。 |
| 2 | 引用不会修改 Detached Ruleset 作用域
仅提供引用,ruleset 不会访问任何新作用域。 |
| 3 | 解锁将修改 Detached Ruleset 作用域
通过导入到作用域中,detached ruleset 可以访问该作用域。 |