CSS预处理器:Sass/Less入门

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特有功能

Less特有功能

  • 实时编译(浏览器端支持)
  • 懒加载(变量可后定义)

开发建议

  1. 项目选型:新项目推荐Sass(功能更全面),旧项目可沿用Less。
  2. 工具链:结合构建工具(Webpack、Gulp)实现自动化编译。
  3. 调试:使用Source Map映射原始文件。

通过预处理器可显著提升CSS开发体验,建议从变量和嵌套开始逐步实践高级功能。

相关推荐
biubiubiu_LYQ10 小时前
入门开发者基础篇之CSS浮动布局:一文吃透浮动底层逻辑
前端·css
ZC跨境爬虫14 小时前
跟着 MDN 学CSS day_45:媒体查询入门指南——从语法到移动优先实践
前端·css·ui·html·tensorflow·媒体
ZC跨境爬虫15 小时前
跟着 MDN 学CSS day_47:(移动优先实战——从手机到宽屏的响应式进化)
前端·css·html·tensorflow·媒体
ZC跨境爬虫15 小时前
跟着 MDN 学CSS day_46:(响应式实战——用媒体查询打造双列布局)
前端·css·ui·html·tensorflow·媒体
shuoshuohaohao15 小时前
《CSS》
前端·css
用户0595401744616 小时前
Redis持久化踩坑实录:RDB+AOF混合持久化,竟会悄无声息丢数据?我用pytest+Docker复现了30次故障场景
前端·css
anno16 小时前
一篇文章带你搞懂 CSS 选择器(带示例 + 对比 + 优缺点总结)
css
moMo16 小时前
# 从重置样式到 BEM 命名:写一个微信的按钮
前端·css
ZC跨境爬虫18 小时前
跟着 MDN 学CSS day_48:深入CSS多列布局——像报纸一样组织内容
前端·css·学习
weixin_4277716119 小时前
css加载顺序导致本地和线上样式不一致
前端·css