最近项目用到 less 来做 css 预处理器,之前公司项目是用的 sass,所以抽空针对 less,重新了解了一番。
1. Less 的由来
[Less 中文官方网站]:http://lesscss.cn/
在 Web 发展的这几年,有了 webpack 来做构建,所以为了让 CSS 富有逻辑性,短板(在语法更新时,每当新属性提出,浏览器的兼容又会马上变成绊脚石)不那么严重,涌现出了一些神奇的预处理语言。 它们让 CSS 彻底变成一门可以使用变量、循环、继承、自定义方法等多种特性的标记语言,逻辑性得以大大增强。
其中 常见的有三种:Sass、Less 、Stylus 。
- Sass 诞生于 2007 年,Ruby 编写,其语法功能都十分全面,可以说 它完全把 CSS 变成了一门编程语言。另外 在国内外都很受欢迎,并-且它的项目团队很是强大 ,是一款十分优秀的预处理语言。
- Stylus 诞生于 2010 年,来自 Node.js 社区,语法功能也和 Sass 不相伯仲,是一门十分独特的创新型语言。
- Less 诞生于 2009 年,受 Sass 的影响创建的一个开源项目。 它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充(引用于官网)。
如何选择?
这个问题其实不重要,主要看你们项目和团队的情况,如果你们团队成员都喜欢用 less, 那便选择它就行啦。
2. 如何使用
常见的有两种方式:
- 在页面中 引入 Less.js,可在官网下载,或使用 CDN
1 | <script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.5.3/less.min.js"></script> |
- 在命令行 使用 npm 安装
1 | # npm install -g less |
使用命令
1 | # lessc styles.less > styles.css |
如果你使用了 webpack,那么你需要配合 less-loader 进行处理(这个网上很多文章有介绍)
3. Less 常用功能特性
3.1 变量
我们常常在 CSS 中 看到同一个值重复多次,这样难易于代码维护。
- 值变量
1 | // 以 @ 开头 定义变量 |
通常我们在实际项目中会把变量定义存到到一个文件,方便维护。
- 选择器变量
1 | /* Less */ |
- 属性变量
1 | /* Less */ |
- url 变量
1 | /* Less */ |
- 声明变量
1 | /* Less */ |
- 变量运算
1 | /* Less */ |
- 变量作用域
1 | /* Less */ |
3.2 嵌套
- & 使用
1 | /* Less */ |
- 媒体查询
1 | /* Less */ |
3.3 混合方法
- 无参数方法
1 | /* Less */ |
- 默认参数方法
1 | /* Less */ |
- 条件筛选 when
1 | /* Less */ |
- 数量不定的参数
1 | /* Less */ |
- !important 使用
1 | /* Less */ |
- 属性拼接方法
+_ 代表的是 空格;+ 代表的是 逗号
1 | /* Less */ |
3.4 继承
- extend
1 | /* Less */ |
- all 全局继承
1 | /* Less */ |
3.5 导入
- @import
3.6 函数
1 | isnumber(#ff0); // false |