前端less 学习系列

83 阅读1分钟

less一般在还原UI设计图时常用到,less它是css预处理器, 样式处理中,我常用到的less特性有以下几个

1. 嵌套。

我在还原UI设计图样式时,一般会用基本的嵌套,一般嵌套三级左右, 有时在生成重复类名时会使用

    .button {
        &-ok {
            backgouund-image: url('ok.png');
        }
        &-cancel {
            backgouund-image: url('cancel.png');
        }
        &-custom {
            backgouund-image: url('custom.png');
        }
    }
    // 输出
    .button-ok {
        backgouund-image: url('ok.png');
    }
    .button-cancel {
        backgouund-image: url('cancel.png');
    }
    .button-custom {
        backgouund-image: url('custom.png');
    }

2. 变量。

less 中用 @ 申明变量,我一般在全局样式中使用的多一些, 一些场合中,例如一键换肤、主题切换等使用场景是非常适用的

变量

@width: 20px;

选择器

@my-selector: banner;
.@{my-selector} {
    margin: 0 auto;
}

属性

@property: color;
.widget {
@{property}: #0ee;
}

3. calc() 特例,

calc()经常在动态计算高度和宽度的时候用

4. 混入。

这个项目中也常用,就是讲一段代码重复利用。例如

.margin {
    color: red;
    margin-top: 20px;
}
.menu {
    text-align: center;
    .margin()
}

如果你想创建一个mixin ,但是你不想那个mixin 出现在你的css 输出中,就可以在mixin 定义之后加上括号

.my-mixin {
    color: red;
}
.my-other-mixin() {
    background: pink
}
.class {
    .my-mixin();
    .my-other-mixin();
}
// 编译后
.my-mixin {
    color: red;
}
.class {
    color: red;
    background: pink;
}

5. 函数。

less中内置了 多种函数,项目中,我主要运用函数进行颜色的转换,例如将颜色的亮度降低25%,颜色的饱和度增加5%等

@base: #f04616;
.class {
color: saturate(@base,5%);
background-color: lighten(@base, 25%);
}

还有一些函数,运算