Less 混合函数

管邈
• 阅读 2736

上一节我们学习了带参混合,当混合作为一个函数时是如何传入参数的。本节我们来学习混合函数,混合可以支持嵌套,接受参数和返回值。

混合范围

如果我们在一个混合中定义了变量,那么这个变量只能在这个混合或者引用了这个混合的区域中使用。但是有一个例外,就是如果调用者包含一个具有相同名称的变量,则该变量不会复制到调用者的作用域中,仅存在于调用者本地范围内的变量受到保护,而从父范围继承的变量将会被覆盖。

示例:
.xkd() {
  @w:  10px;
  @h:  20px;
}
.p1{
  .xkd();
  @w: 100px;
  width:  @w;
  height: @h;
}

编译成 CSS 代码:

.p1 {
  width: 100px;
  height: 20px;
}

Mixins 返回值

我们可以在 Mixins 中定义变量,并将作为它的返回值。

示例:
.xkd(@a, @b) {
  @width: @a + @b;
}

.good{
    .xkd(20px, 30px);  
    width: @width; 
}

编译成 CSS 代码:

.good {
  width: 50px;
}

上述代码中,我们在混合 .xkd 中定义了一个变量 @width,变量的值为两参数之和。然后在 .good 中引用了混合 .xkd,其中的 width 属性值为 @width 变量的值。

注意,只有在引用了 .xkd 后,才能使用 @width 变量,否则会报错:

.xkd(@a, @b) {
  @width: @a+@b;
}

.good{
    width: @width; 
}

编译时报错:
Less 混合函数

返回 Mixins

我们可以在 Mixins 中定义 Mixins,并且可以将之用作返回值。

示例:
.out(@num) {
  .inner(){
    width: @num;
  }
}

.xkd{
  .out(100px);  
  .inner(); 
}

编译成 CSS 代码:

.xkd {
  width: 100px;
}

总结

Mixins 中不管是定义变量还是定义 Mixins,都仅对调用者可见。例如在一个 Mixins 中定义了一个变量,只有在引用了这个 Mixins 的样式类中,才能够使用这个变量,否则会导致报错。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
SASS基础
特点:1.在css基础上增加特性:变量、嵌套(nesting)、混合(@mixin)、继承(@extend);2.通过函数进行颜色值与属性值的运算;3.提供控制指令等高级功能;4.自定义输出指令;数据类型:Sass和JavaScript语言类似,也具有自己的数据类型,在Sass中包含以下几种数据类型:1\
九路 九路
4年前
Swift与Objective-C混合编程之Swift与Objective-C API映射
原创文章,欢迎转载。转载请注明:关东升的博客Swift与ObjectiveCAPI映射在混合编程过程中Swift与ObjectiveC调用是双向的,由于不同语言对于相同API的表述是不同的,他们之间是有某种映射规律的,这种API映射规律主要体现在构造函数和方法两个方面。1、构造函数映射在Swift与ObjectiveC语言进行混合
Stella981 Stella981
3年前
Flutter混合开发踩坑指北
2020年这个长假因为新型冠状病毒疫情显得格外不一样,好多小伙伴应该已经闲的长毛了,再坚持一下,相信国家很快就会控制住的。这两天实在不知道做啥了,开始跟着keep计划健身,为即将来临的工作热身,今天学习了一下Flutter的混合开发知识。Flutter与Android的原生混合开发学习中遇到一些问题,现在记录如下。首先看一下如何创建一个Flutter
Stella981 Stella981
3年前
IOS之UIWebView的使用
刚接触IOS开发1年多,现在对于混合式移动端开发越来越流行,因为开发成本上、速度上都比传统的APP开发要好,混合式开发是传统模式与PC网页端相结合的模式。那么提到了APP的混合模式开发,在Android开发中有WebView作为混合模式开发的桥梁,当然在IOS中也同样有一个UIWebView组件来作为混合模式开发的桥梁,那么下面就对UIWebVi
Stella981 Stella981
3年前
R语言代写线性混合效应模型Linear Mixed
本文介绍了线性混合效应模型的新型贝叶斯分析。该分析基于部分折叠的方法,该方法允许某些组件从模型中部分折叠。得到的部分折叠的Gibbs(PCG)采样器被构造成适合线性混合效应模型,预计会比相应的Gibbs采样器表现出更好的收敛特性。为了构建PCG采样器而不使组件更新复杂化,我们考虑通过在线性混合效应模型中根据组内方差表示组间方差来重新参数化模型组件。简介
Stella981 Stella981
3年前
JFrog助力Google Anthos混合云Devops实践,实现安全高质量的容器镜像管理
自GoogleAnthos推出以来在混合云领域受到极大关注,作为Google进入ToB混合云市场的战略级产品,Anthos集成了如GKE(GoogleKubernetesEngine)、GKEOnPrem、IstioonGKE等……引起业界的关注。可以说这又是Google又一大利器。那么混合云作为企业数字化转型的重要基础设施建设,既
Stella981 Stella981
3年前
Sass之混合宏、继承、占位符
  1、混合宏。    当样式变得越来越复杂,需要重复使用大段的样式时,使用变量就无法达到我们目的了。这个时候混合宏就派上用场了。  而使用混合宏时,首先要声明混合宏,而声明混合宏时有两种,不带参数混合宏和带参数混合宏两种。  1.1不带参数混合宏的声明要使用关键词@mixin。例如:  @mixinborderradi
Stella981 Stella981
3年前
Sass 带参混合
本节我们来学习带参混合,Sass中混合可以接受参数,我们可以通过使用@include调用混合时给混合传参,来定义混合生成的精确样式。给混合传参混合可以用SassScript值作为参数,给定的参数被包括在混合中并且作为为变量提供给混合,既然是作为变量,那么定义参数时,参数名前面需要加一个$符号。当我们定义一个带参
安全可信 | 首批+先进!天翼全栈混合云一举斩获三项可信云评估
2022年底,由中国信息通信研究院主办的“2022混合云技术发展论坛”在北京召开,论坛上发布了多项团体和行业标准,受到了产、学、研各方的关注。率先顺利通过《混合云超融合平台能力要求》《混合云应用场景能力要求第2部分:负载调度》《混合云应用场景能力要求第3部
这问题巧了,SpringMVC 不同参数处理机制引发的思考 | 京东云技术团队
这个问题非常有趣,不是SpringMVC的问题,是实际开发中混合使用了两种请求方式暴露出来的。