LESS

2019-01-14  本文已影响0人  陈裔松的技术博客

Less介绍和使用

Less语法和功能

变量
// 定义变量
@header-height:60px;
@header-bottom-bgcolor:#000;

// 使用变量
.header{
    height:@header-height;
    background:@header-bottom-bgcolor;
}
普通混合
// 相当于定义函数
.fl{
    float: left;
}
// 注意:以这种方式定义的话,转换后的CSS文件中不会存在.fr
.fr(){
    float: right;
}
.nav-block-margin(){
    height: 36px;
    margin: 12px 25px;
}

// 相当于使用函数
.logo{
    .fl();
    .fr();
    .nav-block-margin();
}
参数混合
// 相当于定义带参数的函数
.border-radius(@radius: 50%){
    -webkit-border-radius: @radius;
     -moz-border-radius: @radius;
          border-radius: @radius;
}

// 相当于使用带参数的函数
.profile__ava{
    width: 36px;
    height: 36px;
    margin: 12px;
    .border-radius(50px);
}
参数混合逻辑控制
/* 背景色定义 */
#bg-color(@name) when(@name=dark) {
    background-color: #2b333b;
}
#bg-color(@name) when(@name=light){
    background-color: #363c41;
}
/* 字体大小定义 */
#ft-size(@name) when(@name=small){
    font-size: 12px;
}
#ft-size(@name) when(@name=medium){
    font-size: 14px;
}

// 使用背景色
.nav__item:hover{
    #bg-color(light)
}
// 使用字体大小
.nav__item{
    #ft-size(medium);
}
嵌套
// BEM选择器写法
.nav{
    &__item{                  // .nav__item
        display: block;
        float: left;
        line-height: 60px;
        padding: 0 25px;
        text-decoration: none;
        #color(white);
        #ft-size(medium);
        &:hover{               // .nav__item:hover
            #bg-color(light)
        }
        &_icon_new{            // .nav__item_icon_new
            #bg-color(light)
        }

    }
}
文件引用
// 使用场景1
// 比如我们会把一些全局变量放在variable.less文件中,然后通过@import引入
@import "variable.less";  // 引号里面是相对路径
// 使用场景2
// 比如在初始化的时候,我们会在init.less文件中把一些less文件都引入进来

@import "init1.less";
@import "init2.less";
上一篇 下一篇

猜你喜欢

热点阅读