LESS 简介
LESS(Leaner Style Sheets)是另一种流行的 CSS 预处理器,它的语法更接近原生 CSS,学习曲线相对平缓。虽然 SASS/SCSS 现在更流行,但 LESS 仍然有其使用场景和优势。本章将介绍 LESS 的特点和使用方法。
LESS 的设计理念
核心理念
LESS 的设计目标是:
- 接近 CSS:语法尽可能接近原生 CSS
- 易于学习:从 CSS 迁移成本低
- 功能完整:提供预处理器所需的核心功能
语法特点
LESS 的语法非常接近 CSS,只需要学习一些额外的特性:
// 变量使用 @ 符号
@primary-color: #007bff;
.button {
background-color: @primary-color;
}
与 SASS / SCSS 的区别
语法差异
| 特性 | LESS | SASS/SCSS |
|---|---|---|
| 变量符号 | @ | $ |
| 混合定义 | .mixin() | @mixin mixin() |
| 混合使用 | .mixin() | @include mixin() |
| 嵌套 | 支持 | 支持 |
| 函数 | 内置函数 | 内置+自定义函数 |
功能对比
LESS 的优势:
- 语法更接近 CSS
- 可以在浏览器中编译(开发时)
- 学习曲线平缓
SASS/SCSS 的优势:
- 功能更强大
- 社区更活跃
- 工具生态更完善
- 更多高级特性
核心特性
1. 变量
@primary-color: #007bff;
@font-size-base: 16px;
@spacing-unit: 8px;
.button {
background-color: @primary-color;
font-size: @font-size-base;
padding: @spacing-unit * 2;
}
2. 嵌套
.navbar {
background-color: white;
.menu {
display: flex;
.item {
padding: 10px;
a {
color: #333;
&:hover {
color: @primary-color;
}
}
}
}
}
3. 混合(Mixins)
// 定义混合
.button-style(@bg-color, @text-color: white) {
background-color: @bg-color;
color: @text-color;
padding: 10px 20px;
border: none;
border-radius: 4px;
&:hover {
background-color: darken(@bg-color, 10%);
}
}
// 使用混合
.button-primary {
.button-style(#007bff);
}
.button-secondary {
.button-style(#6c757d);
}
4. 函数
.button {
background-color: darken(#007bff, 10%);
color: lighten(#333, 20%);
width: percentage(2/3);
}