CSS(层叠样式表)是一项出色的技术作为一门标记性语言,CSS 的先天性优点是语法相对简单,对使用者的要求较低,但它的致命弱点是需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用。造成这一现象的很大原因在于CSS是一门非程序式语言,没有变量、函数、SCOPE(作用域)等概念。Less的出现,为Web开发者带来了福音,它是一门CSS预处理语言,引入了变量、运算、函数、继承等功能,为CSS语言赋予了动态语言的特性。Less大大简化了CSS的编写,并且降低了CSS的维护成本。就像它的名称所说的那样,Less可以让我们用更少的代码做更多的事情。
语法
1.注释
// 单行注释 不会编译到css中 /* 多行注释 会编译到css中 */
2.变量
// 语法: @变量名: 值 @white: #fff; @bgColor: #ccc; @fontSize: 22px; // 多值变量 @normalSize: 20px 30px 40px 50px; body { background-color:@bgColor; } main { color: @bgColor; background-color: @white; font-size:@fontSize; padding:@normalSize; } aside { font-size:@fontSize; margin:@normalSize; }
3.嵌套(尽量不要嵌套超过三层)
.container { h1 { font-size: 25px; color: #e45456; } p { font-size: 25px; color: #3c7949; } .myclass { h1 { font-size: 25px; color: #e45456; } p { font-size: 25px; color: #3c7949; } } }
- 父选择器符号(&) 直接子选则器符号(>).container { > h1 { font-size: 25px; color: #e45456; } > p { font-size: 25px; color: #3c7949; } .myclass { h1 { font-size: 25px; color: #e45456; } p { font-size: 25px; color: #3c7949; } } }
5.四则运算
.box { width: 20px*3 + 10; height: 30px/3-2; }
6.函数
.effect(@normal:yellow, @hover:orange, @visited:darkorange, @active:green) { color: @normal; &:hover { color: @hover; } &:visited { color: @visited; } &:active { color: @active; } } a { // .effect(red,green,blue,black); .effect() } .box { .effect(pink,hotpink,lightpink,white); }
7.导入
不同的功能 要把这些代码放到不同的文件中 格式: @import "src"
8.继承
aside { font-size:24px; margin:20px 30px 40px 50px; border:1px solid #ccc; } main { color:#ccc; background-color:#fff; // font-size:24px; // padding:20px 30px 40px 50px; &:extend(aside); border:none; }