目录
1.1 在vue cli2 使用vue init webpack xxx 创建的项目
1.2 在vue cli3中(vue create xxx)
1.安装
1.1 在vue cli2 使用vue init webpack xxx 创建的项目
webpack安装要考虑less-loader的兼容问题,
npm install less-loader@7.0.0
如果7.0.0不行,就一步一步下探,6.0.0 5.0.0
安装less-loader成功后,
npm install --save less
安装less
在webpack.base.config.js的rules里添加
{
test: /\.less$/,
loader: "style-loader!css-loader!less-loader"
}
在.vue文件的style区,加上lang='less'
1.2 在vue cli3中(vue create xxx)
npm install less-loader -- save-dev
npm install less --save-dev
在.vue文件的style区,加上lang='less'
2.使用
2.1定义变量
@width: 500px;
@height: @width+10px;
@red: #f00;
@transparent: 0.5;
@radius: 30px;
注意变量也可以引用变量
2.2 在属性中使用变量
#app {
width: @width;
height: @height;
background-color: @red;
}
2.3混合(Mixin)
.border() {
border-radius: @radius;
border-color: @red;
}
.colors() {
primary: #3385ff;
secondary: green;
}
#app {
width: @width;
height: @height;
background-color: @red;
.border();
}
编译出来就是
#app {
width: 500px;
height: 510px;
background-color: #f00;
border-radius: 30px;
border-color: #f00;
}
2.4在引用变量时,做一些运算
.inner-app {
width: @width / 2;
height: @height / 2;
background-color: #00f;
}
编译出来是
.inner-app {
width: 500px / 2;
height: 510px / 2;
background-color: #00f;
}
2.5可以以属性名作为变量
.app2 {
@width: 200px;
width: @width;
height: $width;
background-color: .colors[secondary]; // .colors在上边Mixin里定义的
}
编译出来是
.app2 {
width: 200px;
height: 200px;
background-color: green;
}
2.6引用父元素以及祖先元素(&)
#app {
width: @width;
height: @height;
background-color: @red;
&:hover {
opacity: @transparent;
&::after {
content: "anc";
}
&::before {
content: "xyt";
}
}
}
编译出来是
#app:hover {
opacity: 0.5;
}
#app:hover::after {
content: "anc";
}
#app:hover::before {
content: "xyt";
}
注意 &引用的是所有父元素和祖先元素