在 less 中文网中是这么介绍 less 的:
Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。
Less 可以运行在 Node 或浏览器端。
由于 vue-cli 构建的项目默认是不支持 less 的,所以一开始需要我们自己安装相关模块
一、LESS 的安装
为了便于在 vue 脚手架中使用 less,首先要通过 npm 对 less 进行安装和配置
// npm 安装less和less-loader npm install less less-loader --save-dev
然后在 config 中进行 webpack 配置,增加相应的 loader
module.exports = { // ... module: { rules: [ // ... { test: /\.less$/, loader: "style-loader!css-loader!less-loader", } ] } }
二、使用 LESS
在 vue 脚手架中使用时直接在代码中的 style 标签中 加上 lang="less" 属性即可。
<style lang="less" scoped> div { a { color:red; } }
三、LESS 的常见操作(https://less.bootcss.com/)
- 变量。通过变量声明,可以存储常用的任何类型的值,包括 颜色、尺寸、选择器、字体名称和 URL 等,以便于尽可能多的重用 CSS
@background-color: #ffffff; @color: #333; div { background-color: @background-color; color: @color; } ul { background-color: @background-color; } li { color: @color; }
- 混合(Mixins)。将已有的 class 和 id 的样式应用到其他选择器上
#a{ background-color: #fff; border-radius: 100%; } #b{ width: 50px; height: 50px; #a } #c{ width: 100px; height: 100px; #a }
转换成常规的 css 语法如下:
#a { background-color: #fff; border-radius: 100%; } #b { width: 50px; height: 50px; background-color: #fff; border-radius: 100%; } #c { width: 100px; height: 100px; background-color: #fff; border-radius: 100%; }
同时,Mixin 支持传入参数,如:
#circle(@size: 25px){ background-color: #4CAF50; border-radius: 100%; width: @size; height: @size; } #small-circle{ #circle } #big-circle{ #circle(100px) }
转换成 css 为:
#small-circle { background-color: #4CAF50; border-radius: 100%; width: 25px; height: 25px; } #big-circle { background-color: #4CAF50; border-radius: 100%; width: 100px; height: 100px; }
注:如上所示,如果不想被引用的规则也出现在 CSS 代码中,可以后面加上括号
- 嵌套。选择器互相嵌套构造样式表,可以与页面的 HTML 结构相匹配,避免冲突,节省代码量
ul{ background-color: #fff; padding: 10px; li{ margin: 10px; } }
编译成 css 样式
ul{ background-color: #fff; padding: 10px; } ul li{ margin: 10px; }
- 基础运算。可以对对数值和颜色进行基本的数学运算
@width: 100px; @color: #03A9F4; div{ height: 50px; display: inline-block; } #left{ width: @width; background-color: @color - 100;// #004590 } #right{ width: @width * 2;// 200px background-color: @color; }
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于