码迷,mamicode.com
首页 > 其他好文 > 详细

Less和Sass的使用

时间:2017-05-01 22:15:07      阅读:1746      评论:0      收藏:0      [点我收藏+]

标签:border   highlight   htm   style   函数   for   ack   span   return   

【Less中的变量】
  1、声明变量:@变量名:变量值;
     使用变量:@变量名
@length:100px;
@color:yellow;
@opa:0.5;
  >>>Less中变量的类型:
    ①数字类:1 10px
    ②字符串:无引号字符串 red 有引号字符串 "haha"
    ③颜色类:red #000000 rgb()
    ④值列表类:用逗号或空格分隔10px solid red
  >>>变量使用原则:多次频繁出现的值、需要修改的值,设为变量。
#div1{
    width: @length;
    height: @length;
    background-color: @color;
    opacity: @opa;
    .borderRadius;
    .setMargin(top_,10px);
}

  

2、混合(Mixins)
  ①无参混合
   声明:.name{}; 选择器中调用 .name
  ②带参混合
   无默认值声明:.name(@param){} 调用:.name(parValue);
   有默认值声明:.name(@param:value){} 调用:.name(parValue); parValue可省
    >>>如果声明时,参数没有默认值,则调用时必须赋值,否则报错
    >>>无参混合,会在css中编译出同名的class选择器;有参的不会
3、Less的匹配模式
  使用混合进行匹配,类似于if结构;
  声明:.name(条件一,参数){} .name(条件二,参数){} .name(条件三,参数){} .name(@_,参数){}
.setMargin(top_,@width){
    margin-top: @width;
}
.setMargin(bottom_,@width){
    margin-bottom: @width;
}
.setMargin(@_,@width){
    padding: 10px;
}
  调用:.name(条件值,参数值);
.setMargin(top_,10px);
  匹配规则:根据调用时提供的条件值,去寻找与之匹配的"Mixins"执行。其中@_表示永远需要执行的部分。
4、Less中的运算
  + - * /
  颜色计算时,红绿蓝分三组计算。组内可进位,组间互不干涉
技术分享
【Less中的嵌套】
  1、嵌套默认是后代选择器,如果需要子代选择器,则在子代前面加>
  2、& 表示上一层,&:hover 表示上一层的hover事件
section{
    p{
        color: blueviolet;
        background-color: #00FFFF;
        text-align: center;
    }
    ul{
        padding: 0px;
        list-style: none;
        li{
            float: left;
            margin: 10px;
            width: 100px;
            border: 3px solid #00CED1;
            text-align:center; 
            &:hover{
                background-color: cornflowerblue;
                color: white;
            }
        };
    }
}
 
【Sass中的变量】
  1、声明变量:$变量名:变量值
  2、变量在字符串中嵌套,需使用#{}包裹
border: #{$i}px solid red; 
  3、Sass中的运算:会将单位也进行运算。使用时需注意最终单位
    10px*10px=100px*px
  4、混合宏、继承、占位符
    ①混合宏:声明@mixin name($param:value){}
@mixin hong($color:yellow){
    color: $color;
}

         调用@include name(value);

@include hong;

  技术分享

    >>>声明时可以有参,也可无参;可带默认值,也可不带;但是调用时必须符合声明规范,同less
    >>>优点:可以传参
    >>>缺点:会将混合宏中代码copy到对应的选择器中,产生冗余代码
    ②继承:声明:.class{}
.class{
    padding: 10px;
}

        调用:@extend.class;

@extend .class;

    >>>优点:继承的相同代码,可以提取到并集选择器;不会生成同名的class选择器

    >>>缺点:无法进行传参
  综上所述:当需要传递参数时,用混合宏;当有现成class时用继承;当不需要class时,用占位符
  5、if条件结构
    @if 判断条件{}
    @else{}
  6、for循环结构
    @for $i from 1 to 10{} 不含10
    @for $i from 1 through 10{} 包含10
@for $i from 1 through 4{
    .border#{$i}{
        border: #{$i}px solid red;
    }
}

  7、while循环结构

    $j:1,
    @while 判断条件{}
$j:1;
@while $j<4{
    .while#{$j}{
        border:#{$j}px solid red;
    }
    $j:$j+1;
}

  8、each循环遍历

    @each $item in a,b,c,d{}
  9、函数
    @function func($name){}
@function func($length){
    $length:$length*5;
    @return $length;
}  

  【Sass中的嵌套】

  1、选择器嵌套 ul{ li{} } 后代
    ul{ >li{} } 子代
    &表示上一层 div{ ul {li{ &=="div ul li" } } }
  2、属性嵌套:属性名与{之间必须有: 例如 border:{color:red;}
  3、伪类嵌套:ul{li{ &:hover{ "ul li:hover " } } }
    
section{
    p{
        color: #2173B6;
        background-color: #00FFFF;
    }
    ul{
        padding: 0px;
        list-style: none;
        li{
            float: left;
            width: 100px;
            text-align: center;
            margin: 10px;
            border: {
                color: #4E81BD;
                style:solid;
                width: 10px;
            };
            &:hover{
                background-color: #6495ED;
                color: white;
            }
        }
    }
}

  

 

Less和Sass的使用

标签:border   highlight   htm   style   函数   for   ack   span   return   

原文地址:http://www.cnblogs.com/dealblog/p/6792731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!