6.3.2 Less的两种用法
Less
源文件只有被编译成CSS
样式单才能被浏览器识别,根据编译Less
源文件的时机,Less
通常有两种用法。
- 预编译:预先使用特定的编译器将
Less
源文件编译成CSS
文件,在网页中直接引用CSS
文件即可。 - 浏览器即时编译:直接在网页中引入
Less
源文件,并在网页中导入编译Less
源文件的JS库,从而让浏览器在运行时即时编译Less
源文件。
1.预编译方式
使用默认的Grunt遍历Less
先看”预编译”使用Less
源文件的方式。如果要预编译Less
源文件,就需要使用特定的编译工具。Bootstrap
默认使用Grunt
作为编译系统,并提供一些便捷的工具方法用于编译整个Bootstrap
框架。
使用Grunt
之前,必须先安装Grunt
,推荐使用Node.js
来安装Grunt
,因此开发者应该先安装Node.js
,安装Node.js
时会自动安装npm
工具—npm
是node packaged modules
的简称,它的作用是基于Node.js
管理扩展包之间的依赖关系。
提示:在Windows
上安装Node.js
非常简单,只要登录Node.js
官网下载一个node-vx.x.x.msi
安装文件,就像安装其他Windows
程序一样安装它即可。
Grunt安装步骤
安装Grunt
请按如下步骤进行。
启动命令行窗口,在命令行窗口中输入如下命令来安装
grunt-cli
:1
npm install -g grunt-cli
下载并解压
Bootstrap
的源代码包,在该解压路径下会看到package.json
文件。进入
Bootstrap
源代码包的解压路径,在该路径下输入如下命令:1
npm install
该命令将会读取package.json
文件并自动安装此文件中列出的所有被依赖的扩展包。
成功安装Grunt
之后,接下来要编译Bootstrap
的Less
源代码非常简单,直接使用Bootstrap
提供的工具方法进行编译即可。下面是Bootstrap
提供的工具方法。
grunt dist
:重新生成dist/
目录,并将编译、压缩后的CSS
和JavaScript
文件放入这个目录中。大部分时候只要执行该命令即可。grunt watch
:监测Less
源文件的改变,并自动重新将其编译为CSS
文件。grunt test
:在PhantomJS
环境中运行JSHint
和QUnit
自动化测试用例。
其他Less编译器
如果仅仅只是编译少量的Less
源文件,也有一些简便、易用的Less
编译工具。
- WinLess:
Windows
平台的Less
编译软件。 - Koala:全平台的
Less/Sass
编译工具。该工具支持Windows
、Linux
和Mac OS X
平台。 - SimpleLESS:跨平台的
Less
编译工具。该工具支持Windows
和Mac OS X
平台
NodeJS中使用lessc命令编译less
打开git-bash,输入乳腺npm命令安装less:
1 | npm install -g less |
安装成功后进入less文件所在的目录,使用lessc xxx.less xxxx.css
命令把less文件编译成css文件,例如:
1 | $ lessc var.less var.css |
这样就会在同级目录下生成编译好的var.css
文件。
VSCode中安装less自动编译插件
在VScode
中依次打开查看
,扩展
,然后在搜索框中输入less
进行搜索,然后:
- 安装
Beautify css/sass/scss/less
这个插件,这个插件可以格式化less
文件, - 安装
Easy LESS
这个插件,这个插件可以在保存less
文件时自动编译该less
文件.这样我们就不用手动去输入指令编译了。
2.即时编译方式
使用即时编译方式,需要额外下载一个编译Less
源文件的JS库。登录less的Github仓库即可下载Less.js
的源文件压缩包。解压压缩包,我们只需要压缩包dist/
目录下的less.min.js
文件。
在HTML
页面中直接使用link
标签引入Less
源文件,然后使用script
标签引入less.min.js
文件即可。
1 | <!-- 引入less源文件 --> |
程序示例
1 |
|
注意:引入less源文件和less的编译器文件如下所示
1 | <!-- 引入less源文件 --> |
- 第一行代码表明在页面中引入
sample.less
源文件,其中rel
属性值为stylesheet/less
,这表明被引入的文件是Less
源文件,而不是CSS
样式单文件。 - 第二行代码引入了
less.min.js
文件,浏览器将会使用该JS文件在运行时即时编译Less
文件,生成CSS
样式文件。
注意一定要先引入所有Less
源文件,然后后才引入less.min.js
文件。
由于存在跨域访问的问题,因此需要将上面页面部署在Web
服务器(如Tomcat
)之后再访问它。
可以看出3个<div>
元素的高度关系:第二个<div>
高度比第一个<div>
高度小5px;第三个<div>
高度是第一个<div>
高度的2倍。而且从图6.17下方也可以看到浏览器即时编译Less
文件并生成CSS
文件的提示信息。
总体来说,要想使用即时编译的方式,只要在HTML
页面中增加less.min.js
文件即可,使用起来简单、方便,但这种方式会在浏览页面时即时编译,因此会产生额外的性能开销。
我们在学习阶段可采用这种方式使用Less
源文件,
但在实际项目上线时,还是推荐先将Less
源文件编译成CSS
文件,然后在HTML
页面中直接引用预编译的CSS
样式文件。
参考资料
原文链接: 6.3.2 Less的两种用法