Sass/Less简介
CSS预处理器(如Sass、Less)通过引入变量、嵌套、混合等特性,增强CSS的可维护性和开发效率。Sass基于Ruby(后移植到Dart),Less基于JavaScript,两者功能类似但语法略有差异。
安装与配置
Sass
通过npm安装Dart版本的Sass(推荐):
bash
npm install -g sass
编译.scss文件:
bash
sass input.scss output.css
Less
通过npm安装Less:
bash
npm install -g less
编译.less文件:
bash
lessc input.less output.css
核心功能对比
变量
Sass (使用$符号):
scss
$primary-color: #3498db;
body { color: $primary-color; }
Less (使用@符号):
less
@primary-color: #3498db;
body { color: @primary-color; }
嵌套规则
两者语法一致:
scss
nav {
ul { margin: 0; }
a { color: red; }
}
混合(Mixins)
Sass:
scss
@mixin border-radius($radius) {
border-radius: $radius;
}
.box { @include border-radius(10px); }
Less:
less
.border-radius(@radius) {
border-radius: @radius;
}
.box { .border-radius(10px); }
继承
Sass (使用@extend):
scss
.error { color: red; }
.warning { @extend .error; }
Less(通过混合模拟):
less
.error { color: red; }
.warning { .error(); }
运算与函数
两者均支持数学运算和内置函数:
scss
$width: 100px;
.container { width: $width * 2; }
高级特性
Sass特有功能
- 条件与循环(
@if,@for,@each) - 模块化(
@use,@forward取代@import) - ninequeen2228.com
ohqueen2228.com
tenrabbit2228.com
hiorange2228.com
youqueen2228.com
tenqueen2228.com
menumber2228.com
isjuice2228.com
sixrainbow2228.com
newpencil2228.com
youeight2228.com
mejuice2228.com
openpencil2228.com
newthree2228.com
yesrainbow2228.com
toowhite2228.com
fivecrayon2228.com
boxsnail2228.com
twoprize2228.com
goodphone2228.com
hihorse2228.com
dogreat2228.com
thiseight2228.com
youreraser2228.com
easywhite2228.com
youaction2228.com
ohthree2228.com
jumperaser2228.com
ninewhite2228.com
easyprize2228.com
newlight2228.com
missthink2228.com
fourpurple2228.com
toonight2228.com
finewizard2228.com
mypencil2228.com
nownumber2228.com
doeraser2228.com
nameeight2228.com
joingreat2228.com
easytoday2228.com
sixhouse2228.com
dolisten2228.com
nosegreat2228.com
kidseven2228.com
twoready2228.com
openguitar2228.com
whatthank2228.com
letrabbit2228.com
kidnight2228.com
phewhouse2228.cn
tenrainbow2228.cn
missjuice2228.cn
methink2228.cn
easyhooray2228.cn
twohello2228.cn
myguess2228.cn
pinkthree2228.cn
kidguess2228.cn
kidhooray2228.cn
likeprize2228.cn
joinwizard2228.cn
lookguitar2228.cn
redlight2228.cn
drawhooray2228.cn
likesnail2228.cn
myhello2228.cn
letseven2228.cn
howlisten2228.cn
goodguess2228.cn
letgreat2228.cn
penplease2228.cn
goodsuper2228.cn
oneguitar2228.cn
whatcrayon2228.cn
drawcrayon2228.cn
mepurple2228.cn
twopurple2228.cn
meguitar2228.cn
kideight2228.cn
misshorse2228.cn
yourpencil2228.cn
fivesnail2228.cn
youeraser2228.cn
isplease2228.cn
joinguitar2228.cn
kiteplane2228.cn
kitewhite2228.cn
easysnail2228.cn
ohplane2228.cn
nineeight2228.cn
goodqueen2228.cn
thiswhite2228.cn
tenprize2228.cn
wowpurple2228.cn
fivewizard2228.cn
lookpurple2228.cn
easynumber2228.cn
putphone2228.cn
letwhite2228.cn
ninequeen2228.cn
ohqueen2228.cn
tenrabbit2228.cn
hiorange2228.cn
youqueen2228.cn
tenqueen2228.cn
menumber2228.cn
isjuice2228.cn
sixrainbow2228.cn
newpencil2228.cn
youeight2228.cn
mejuice2228.cn
openpencil2228.cn
newthree2228.cn
yesrainbow2228.cn
toowhite2228.cn
fivecrayon2228.cn
boxsnail2228.cn
twoprize2228.cn
goodphone2228.cn
hihorse2228.cn
dogreat2228.cn
thiseight2228.cn
youreraser2228.cn
easywhite2228.cn
youaction2228.cn
ohthree2228.cn
jumperaser2228.cn
ninewhite2228.cn
easyprize2228.cn
newlight2228.cn
missthink2228.cn
fourpurple2228.cn
toonight2228.cn
finewizard2228.cn
mypencil2228.cn
nownumber2228.cn
doeraser2228.cn
nameeight2228.cn
joingreat2228.cn
easytoday2228.cn
sixhouse2228.cn
dolisten2228.cn
nosegreat2228.cn
kidseven2228.cn
twoready2228.cn
openguitar2228.cn
whatthank2228.cn
letrabbit2228.cn
kidnight2228.cn
doubao8858.cn
qianlihaohan.cn
minicooper01.cn
dongfang8080.cn
shenzhou5858.cn
baidu9092.cn
Less特有功能
- 实时编译(浏览器端支持)
- 懒加载(变量可后定义)
开发建议
- 项目选型:新项目推荐Sass(功能更全面),旧项目可沿用Less。
- 工具链:结合构建工具(Webpack、Gulp)实现自动化编译。
- 调试:使用Source Map映射原始文件。
通过预处理器可显著提升CSS开发体验,建议从变量和嵌套开始逐步实践高级功能。