LESS详解之混合(Mixins)中级

  之前为大家介绍了一下有关LESS详解之混合(Mixins)的初级,想必大家已经对LESS详解之混合(Mixins)有了一些了解和认识了。那么下面就开始进入LESS详解之混合(Mixins)中级的介绍了。本次主要为大家介绍了多参数混合、@arguments 变量和!important关键字,希望能大家有所帮助。


  多参数混合


  多个参数可以使用分号或者逗号分隔,这里推荐使用分号分隔,因为逗号有两重含义:它既可以表示混合的参数,也可以表示一个参数中一组值的分隔符。

  使用分号作为参数分隔符意味着可以将逗号分隔的一组值作为一个变量处理。换句话说,如果编译器在混合的定义或者是调用中找到至少一个分号,就会假设参数是使用分号分隔的,所有的逗号都属于参数中的一组值的分隔符。

  2个参数,每个参数都含有通过逗号分隔的一组值的情况:.name(1, 2, 3; something, else)。

  3个参数,每个参数只含一个数字的情况:.name(1, 2, 3)。

  使用一个象征性的分号可以创建一个只含一个参数,但参数包含一组值的混合:.name(1, 2, 3;)。

  逗号分隔的一组值参数的默认值:.name(@param1: red, blue;)。

  使用同样的名字和同样数量的参数定义多个混合是合法的。在被调用时,LESS会应用到所有可以应用的混合上。小例子如下


  LESS代码

.mixin(@width) {
    width-1: @width;
}
.mixin(@width; @height:2em) {
    width-2: @width;
    height-2: @height;
}
.mixin(@width; @height; @margin: 2em) {
    width-3: @width;
    height-3: @height;
    margin: @margin @margin @margin @margin;
}

h1 {
    .mixin(red);
}
div {
    .mixin(#000,3px);
}
span {
    .mixin(#fff,3px,5px);
}

  编译后的CSS代码

h1 {
  width-1: #ff0000;
  width-2: #ff0000;
  height-2: 2em;
}
div {
  width-2: #000000;
  height-2: 3px;
  width-3: #000000;
  height-3: 3px;
  margin: 2em 2em 2em 2em;
}
span {
  width-3: #ffffff;
  height-3: 3px;
  margin: 5px 5px 5px 5px;
}

  @arguments 变量


  提到arguments想必对JavaScript了解的伙伴儿大概有所眼熟,这个在JavaScript中代表所有参数。而在LESS中代表的意思是一样的只不过用法有所不同。 如果你不想单独处理每一个参数的话就可以用@arguments。小例子如下


  LESS代码

.transition (@moveStyle :all;@delayTime : 4s;@moveType : ease-in; @moveTime : 2s){

    -webkit-transition: @arguments;  
    -moz-transition: @arguments;  
    -o-transition: @arguments;  
    -ms-transition: @arguments;  
    transition: @arguments; 
    
}

div {
    .transition;
}
span {
    .transition (width);
}
h1 {
    .transition (height; 80s);
}
li {
    .transition (all; 80s; ease-out);
}
dd {
    .transition (color; 80s; ease-in-out; 30s);
}

  编译后的CSS代码

div {
  -webkit-transition: all 4s ease-in 2s;
  -moz-transition: all 4s ease-in 2s;
  -o-transition: all 4s ease-in 2s;
  -ms-transition: all 4s ease-in 2s;
  transition: all 4s ease-in 2s;
}
span {
  -webkit-transition: width 4s ease-in 2s;
  -moz-transition: width 4s ease-in 2s;
  -o-transition: width 4s ease-in 2s;
  -ms-transition: width 4s ease-in 2s;
  transition: width 4s ease-in 2s;
}
h1 {
  -webkit-transition: height 80s ease-in 2s;
  -moz-transition: height 80s ease-in 2s;
  -o-transition: height 80s ease-in 2s;
  -ms-transition: height 80s ease-in 2s;
  transition: height 80s ease-in 2s;
}
li {
  -webkit-transition: all 80s ease-out 2s;
  -moz-transition: all 80s ease-out 2s;
  -o-transition: all 80s ease-out 2s;
  -ms-transition: all 80s ease-out 2s;
  transition: all 80s ease-out 2s;
}
dd {
  -webkit-transition: color 80s ease-in-out 30s;
  -moz-transition: color 80s ease-in-out 30s;
  -o-transition: color 80s ease-in-out 30s;
  -ms-transition: color 80s ease-in-out 30s;
  transition: color 80s ease-in-out 30s;
}

  !important关键字


  在CSS编写的时候经常会碰到在属性值后面添加!important的时候。而在LESS中为了能够方便,就设置了!important关键字混合方法。调用时在混合后面加上!important关键字表示将混合带来的所有属性标记为!important。小例子如下


  LESS代码

.my (@width : 20px; @height : 50px){
	width:@width;
	height : @height;
}

.meng {
	.my;
}
.long {
	.my(40px);
}
.menglong {
	.my(234px; 299px);
}
.meng2 {
	.my !important;
}
.long2 {
	.my(40px) !important;
}
.menglong2 {
	.my(234px; 299px) !important;
}

  编译后的CSS代码

.meng {
  width: 20px;
  height: 50px;
}
.long {
  width: 40px;
  height: 50px;
}
.menglong {
  width: 234px;
  height: 299px;
}
.meng2 {
  width: 20px !important;
  height: 50px !important;
}
.long2 {
  width: 40px !important;
  height: 50px !important;
}
.menglong2 {
  width: 234px !important;
  height: 299px !important;
}


  LESS详解之混合(Mixins)中级就为大家介绍到这里了,主要为大家介绍了多参数混合、@arguments 变量和!important关键字。希望能为大家在LESS的学习道路上有所帮助。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值