less 和 sass 配置

本文详细介绍如何在Mac、Linux和Windows环境下配置LESS与Sass,包括安装必要工具、配置环境变量、设置Sublime Text插件等。同时,还提供了LESS与Sass的基本使用方法,如编译LESS文件、配置Sass工程等。

由于博主通常使用是都是 Sublime , 所以本文有点倾向这款编辑器。
文本配置在 mac 环境, linux 和 windows 环境也一样,因为用到的都是命令行和 sublime 插件
本文需要有 npm, 没有安装的请安装 nodejs
必步骤需要 root 权限,mac 和 Linux 用户使用 sudo, windows 用户请用管理员权限运行 cmd

less 配置

全局配置

全局安装 less 包:

npm install -g less
npm install -g less-plugin-clean-css
npm install -g less-plugin-autoprefix

解决方法是将安装目录中的 lessc 添加到环境变量中。mac 中操作方法如下:

ln -s /usr/local/lib/node_modules/less/bin/lessc /usr/local/bin/lessc

windows 中把 node_modules/less/bin/lessc 加入环境变量就好了。

之后我们就可以使用 less 了:

# 编译一个文件(生成同名文件)
lessc <.scss文件>
# 编译一个文件
lessc <.scss文件> <.css文件>

也可以在 js 中使用:

var less = require('less');

less.render('.class { width: (1 + 1) }', {
  paths: ['.', './lib'],  // Specify search paths for @import directives
  filename: 'style.less', // Specify a filename, for better error messages
  compress: true          // Minify CSS output
}, function (e, output) {
   console.log(output.css);
});

或者在 html 中使用:

<link rel="stylesheet/less" type="text/css" href="styles.less" />
<body>
  <p>Make sure you include your stylesheets before the script.</p>
  <p>When you link more than one .less stylesheet each of them is compiled independently. So any variables, mixins or namespaces you define in a stylesheet are not accessible in any other.</p>
  <p>Due to the same origin policy of browsers loading external resources requires enabling CORS</p>
</body>

<script>
  less = {
    env: "development",
    async: false,
    fileAsync: false,
    poll: 1000,
    functions: {},
    dumpLineNumbers: "comments",
    relativeUrls: false,
    rootpath: ":/a.com/"
  };
</script>
<script src="less.js" type="text/javascript"></script>

详细配置请参考 less 手册

sublime 配置

打开 sublime 点击 command+shift+p(win: ctrl+shift+p), 输入 Package Install 安装一下 3 个插件。对于还没有安装Package Control 的可以查看 sublime配置及使用技巧

  • less 提供 less 语法高亮
  • less2css 保存 less 时自动代码转换, 依赖 npm 安装的 less

sublime 中会遇到一个问题: less2css error: ‘lessc’ is not available。也是上一步没有配置环境变量导致的
配置完这些后就可以自动在当前 less 文件目录下生成同名的 css 文件。

Sass 配置

由于 Sass 是 ruby 开发的,所以要首先安装 ruby。这里不重复这个部分,

全局配置

安装compass, 一个 sass 集成环境, 其中包括 Sass:

gem install compass

之后就可以使用 sass 了。创建一个工程目录:

compass create myproject

当前路径就会有一个名为 myproject 的工程目录,里面有一些初始化文件,./sass/ 目录是放 sass 文件的,./stylesheets 是放编译后的 css 文件的,config.rb 是一个 ruby 语言的配置文件。

文件编译:

# 编译一个文件
sass <.scss文件> <.css文件>
# 编译整个目录(只编译发生变化的文件)
sass <.scss文件目录> <.css文件目录>
# 编译整个目录(编译全部文件)
sass --force <.scss文件目录> <.css文件目录>
# 利用 compass 编译整个工程目录(接受同样的参数)
compass compile
# 利用 compass 监视
compass watch

除了--force 参数,还有如下参数

--watch 监视对应操作,当其中文件保存时自动编译, ctrl+C 结束监视
--style 指定输出格式,参数值为:
  nested: '}''{' 都不单独一行
  compressed: 所以内容1行,压缩格式用于发布
  expended: '}' 单独一行; '{' 不单独一行
  compact: 一个 '{...}' 占一行

详细配置请参考 compass 手册, Sass 手册

修复中文注释会乱码的问题:

这是个 ruby 插件的问题,去 ruby 目录中的 gem 中找到 engine.rb,mac 操作如下:

sudo vim /usr/local/lib/ruby/gems/2.4.0/gems/sass-3.4.24/lib/sass/engine.rb

大约在55行附近 找到 “module Sass”, 在其后面插入2行:

# let sass support chinese comments
Encoding.default_external = Encoding.find('utf-8')

sublime 配置

打开 sublime 点击 command+shift+p(win: ctrl+shift+p), 输入 Package Install 安装一下 2 个插件。对于还没有安装Package Control 的可以查看 sublime配置及使用技巧

  • Sass 提供 Sass 语法高亮

sublime 对 sass 不需要多余的配置,所有功能依然通过命令行完成。

LESS Sass(以及其 SCSS 语法)并不属于传统意义上的编程语言,而是属于 **CSS 预处理器语言**,它们扩展了 CSS 的功能,使其具备变量、嵌套、混合(mixins)、函数等特性,从而更便于编写维护样式表。这些语言在开发阶段不会直接被浏览器解析,而是需要通过编译工具将其转换为标准的 CSS 文件[^1]。 Sass 最初采用缩进语法(称为 `.sass`),但后来也引入了类似 CSS 的语法形式,即 SCSS(扩展名为 `.scss`),这种语法形式更易于开发者从 CSS 过渡到 SCSS。而 LESS 则完全采用与 CSS 一致的语法规则(扩展名为 `.less`),因此在早期更容易被接受使用[^1]。 尽管它们不是通用编程语言,但它们确实引入了编程语言的许多特性,例如: - **变量**:可以定义颜色、字体等变量,便于统一管理维护。 - **嵌套规则**:允许以更直观的方式书写嵌套的 CSS 选择器。 - **混合(Mixins)**:可以定义可复用的 CSS 代码块。 - **函数**:支持对颜色、数值等进行操作的函数。 - **条件与循环**:SCSS LESS 均支持条件语句循环结构,用于生成复杂的样式逻辑[^3]。 因此,它们通常被称为**样式表语言的扩展语言**或**CSS 预处理语言**,介于样式表语言编程语言之间,具备一定的编程能力,但专注于样式定义管理的增强。 ### 示例:LESSSCSS 的变量使用 ```less // LESS 示例 @primary-color: #3498db; body { background-color: @primary-color; } ``` ```scss // SCSS 示例 $primary-color: #3498db; body { background-color: $primary-color; } ``` ### 相关问题 1. LESS Sass 是如何影响现代前端框架(如 Vue、React)的样式开发的? 2. Sass LESS 在变量作用域函数功能上有哪些差异? 3. 如何在项目中配置 Webpack 来处理 LESSSCSS 文件? 4. SCSS Stylus 相比有哪些优缺点? 5. CSS 预处理器语言是否会被未来的原生 CSS 特性所取代?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值