SCSS 和 LESS 是两种流行的 CSS 预处理器,用于编写更简洁、更可维护的 CSS 代码。它们在功能上有很多相似之处,但也有一些关键的区别。
SCSS(Sassy CSS)
语法: SCSS ,类似于标准的 CSS。它支持嵌套规则、变量、混合(mixins)、继承等高级功能。
文件扩展名: .scss
变量声明: 使用 $ 作为变量前缀。
$primary-color: #333;
body {
color: $primary-color;
}
嵌套: 支持嵌套选择器,层次结构更加清晰。
.navbar {
background: $primary-color;
.menu {
background: darken($primary-color, 10%);
}
}
Mixin 和 Function: 支持 mixin 和 function,可以重用样式和逻辑。
@mixin border-radius($radius) {
border-radius: $radius;
}
.box {
@include border-radius(10px);
}
LESS
语法: LESS 的语法与 CSS 也非常相似,但使用了不同的方式来实现一些功能,例如变量和嵌套。LESS 同样支持变量、嵌套规则、混合、函数等功能。
文件扩展名: .less
变量声明: 使用 @ 作为变量前缀。
@primary-color: #333;
body {
color: @primary-color;
}
嵌套: 允许嵌套选择器,类似于 SCSS,但没有&选择器符号。
.navbar {
background: @primary-color;
.menu {
background: darken(@primary-color, 10%);
}
}
Mixin: 使用 mixin 时的语法与 SCSS 类似,但声明方式不同。
.border-radius(@radius) {
border-radius: @radius;
}
.box {
.border-radius(10px);
}
两者都足够灵活,可以根据项目需求进行选择。