LESS 是一种动态样式语言,它扩展了CSS的功能,添加了变量、函数、混合等特性,使CSS更易于维护和扩展。LESS 可以运行在 Node 或者浏览器端。
特性
- 变量:可以在 LESS 中使用变量(variables),在一个地方定义,然后在整个样式表中使用。
@color: #4D926F;
header {
color: @color;
}
nav {
color: @color;
}
- 混合(Mixins):可以定义一些class 作为可重用的样式块,然后在其他class中使用。
.rounded-corners {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
#header {
.rounded-corners;
}
.button {
.rounded-corners;
}
- 函数:LESS 提供了一些内置的函数,如 lighten(), darken(), and fade() 等。
@base: #f04646;
@width: 100px;
@height: 200px;
.box {
background-color: @base;
width: @width + 10;
height: @height + 10;
}
- 嵌套规则:LESS 允许你写嵌套的 CSS 规则,可以使你的 CSS 更加的组织,和清晰。
#header {
h1 {
font-size: 26px;
font-weight: bold;
}
p {
font-size: 12px;
a {
text-decoration: none;
&:hover {
border-width: 1px;
}
}
}
}
- 导入:可以导入其他的 LESS 文件。
// 导入其他less文件
@import "variables.less";
@import "mixins.less";
编译
LESS 文件在浏览器中直接使用时,需要将其转换为CSS。这个过程通常是手动完成的,但也可以使用工具自动完成。
在 Node.js 环境中,可以使用 npm 安装 less
包,并使用命令行工具将 LESS 文件编译为 CSS。
npm install -g less
lessc styles.less styles.css
在浏览器端,你可以使用 <link>
标签引入一个 .less
文件,但需要确保服务器能够正确处理 .less
文件,通常需要一个能够将 .less
文件转换为 .css
的服务器端程序。