CSS预处理之Less
趁这几天有空,了解一下css预处理的知识
less简介
Less 是一个Css 预编译器,意思指的是它可以扩展Css语言,添加功能如允许变量(variables),混合(mixins),函数(functions) 和许多其他的技术,让你的Css更具维护性,主题性,扩展性。
Less 可运行在 Node 环境,浏览器环境和Rhino环境.同时也有3种可选工具供你编译文件和监视任何改变。
语法
-
变量
声明一个变量:
@width:100px;
.test {
width: @width;
}
- 混合
.border {
border: 1px solid red;
}
.test {
width: @box_width;
height: 100px;
background: #ccc;
.border; //直接混合使用
}
- 嵌套
正常写法
.test {
font-size: 10px;
}
. test a {
color: red;
}
less 写法:
.test {
font-size: 10px;
a {
color: red;
}
}
同样可以包含伪类:
.test {
font-size: 10px;
a {
&:hover {
color: blue;
}
color: red;
}
}
- 运算
@width: 5px;
.test {
width: @width + 10; //15px
}
less能推断此处的单位
- 函数
.border_radius(@width:5px) { //5px是可选参数,表示默认值
-webkit-border-radius: @width;
-moz-border-radius: @width;
-ms-border-radius: @width;
border-radius: @width;
}
.test {
.border_radius(20px);
}
- 命名空间
.bundle {
.button {
display: block;
border: 1px solid black;
background-color: grey;
&:hover {
background-color: white
}
}
}
//现在如果我们想在 .header a 中混合 .button 类,那么我们可以这样做:
.header a {
color: orange;
.bundle > .button;
}
- 作用域
@var: red;
.page {
#header {
color: @var; // white
}
@var: white;
}
- 避免编译
.test {
width: ~'calc(300px - 30px)';
}
- 注释
//不会被编译css
/**/会被编辑到css
更多使用语法,请查看less中文网。
http://lesscss.net/
个人github博客:aralic.github.io