为什么使用less
css已经有很多新的东西学习了,为什么要学习less的知识。Github上很多项目都已经在用,之前只是一知半解。less既然这么流行,那么肯定有css无法比拟的优势的。
经过几天的学习,发现less除了可以定义变量、嵌套、计算等使得重构开发效率提高以外,还可以将一些常用的属性组合定义一个函数,以便于开发时不用重复去书写。这正好体现着"Less is more"的原则。在写可复用动画函数的时候,用less来写css动画库很方便。工作中可以整理自己的一套,用的时候将参数修改一下,就是可以快速创造出所需的动画。
node中使用
全局
npm install less -g
项目文件夹
npm i less -save-dev
版本查询
less -v
检查是否安装成功扩展 插件
例如,命令行中安装 npm install less-plugin-clean-css
在代码中使用 var pluginName = require("pluginName");
的方式引入。
浏览器中引入方式
原生浏览器可以通过将以下代码加入网页的head部分,访问出效果。
<link rel="stylesheet/less" type="text/css" href="yourfile.less">
<script src="https://cdn.bootcss.com/less.js/2.7.2/less.min.js"></script>
Safari浏览器打开本地网页文件没有问题,但是Google Chrome 引入本地资源文件需要开启 "-allow-file-access-from-files" 命令行开关。
建议先在线试用或是本地app中编辑,这里提供一个在线编译器 http://less2css.org/ 。
命令行编译
npm安装的less可以通过命令行的方式来编译less文件到css文件,例如运行'lessc your.less your.css'这样的代码。
更多的用法,输入 'lessc -h' 获取更多的帮助。
通过形如'@import “another.less”'的方式引入的文件,也会在编译的时候自动引入编译。
less核心功能
翻看 less 的官网 ,发现无从下手。其实,less的强大之处在它的函数,函数是最重要的功能,分为 Misc ,String,List,Math,Type,Color几类,其中Color类的函数最为常用,动画函数库主要是用这些函数来的实现的。
几个例子
csslab(原名Lesslab),从名字可以感觉出这里会有宝藏。来自芒果TV团队封装的CSS动画库,这些例子会让你有直观的印象,例子放在CodePen,你可以编译和修改,直接运行看到效果,所见及所得。
项目中使用
Less 是 css 预处理器,通过npm安装后,通过var less = require('less');
的语句就可以在node中调用Less预编译器。现在的前端项目都工程化,npm上有很多第三方的包,通过Express的中间件 Connect Middleware for Less.js
将less加入项目,grunt-contrib-less
定时运行,gulp-less
减小打包后的体积。可用的选择很多,适合项目的才是最好的。
webpack
前端项目现在流行的打包工具是 webpack,它的 loader 可以打包 js 以外的文件。欲知详情,待看下一篇分解。