最近发现好多小伙伴在面试的过程中会问到vue如何使用less和scss,所以我绝对更新、复习一下less;废话不多说直接进主题;

依赖下载

1、首先使用npm下载依赖;

npm install --save less less-loader

2、安装完成后检查是否安装成功;

lessc -v

  

3、如果安装成功后,会显示安装成功后的版本;

引用方法

1、在main.js

import less from 'less'
Vue.use(less)

2、然后创建一个.vue文件我们开始玩耍了;

注意:独立的vue文件需要引入less

<style lang="less"></style>

开始使用

1、less中变量的使用;

在less,允许我们使用以变量的形式来定义,定义方式:@k:v; 使用方式:@k;

<div class="box"></div>

<style lang="less">
@color:red;
@k:100px;
.box{
width:@k;
height:@k;
background: @color;
}
</style>

此时就会有一个宽100px,高100px,背景红色的正方形显示在页面上了;

2、字符串拼接变量使用方式;

<div class="box1"></div>

<style lang="less" scoped>
@img:'./img/';
@k:100px;
.box1{
    width:@k;
    height:@k;
    background:url("@{img}1.png")
}
</style>

注意:路径需要用""包裹,@{img}这种凡是把变量引进来才能生效;

3、多层嵌套+变量计算;

<div class="box1">
    <div class="box2">
        <div class="box3"></div>
    </div>
</div>

<style lang="less">
@k:100px;
 .box1{
     width: @k;
     height:@k;
     background: red;
     .box2{
         width: @k/2;
         height:@k/2;
         background: green;
         .box3{
             width: @k/3;
             height:@k/3;
             background: blue;
         }
     }
 }
</style>

可以看到,less可以嵌套使用,让我们一次就可以看清楚css结构;除了嵌套使用,有没有发现他的计算才是真正强大的地方呢?

4、混合 = 函数

<div class="box1">我是box1</div>
<div class="box2">我是box2</div>

<style lang="less">
//定义一个函数;
.test(@color:red,@size:14px){
    background: @color;
    font-size:@size;
}
.box1{
//  不传参,使用默认的;
    .test()
}
.box2{
//  给函数传参;
    .test(@color:green,@size:30px)
}
</style>

  

5、匹配模式

<div class="box"></div>
//定义的css
<style lang="less">
.sjx(@_,@color,@size){
    width: 0;
    height:0;
    border:@size solid @color;
    border-color:transparent;
}
//左边三角形
.sjx(l,@color,@size){
    border-left-color:@color;
}
//上边三角形
.sjx(t,@color,@size){
    border-top-color:@color;
}
//右边三角形
.sjx(r,@color,@size){
    border-right-color:@color;
}
//左边三角形
.sjx(b,@color,@size){
    border-bottom-color:@color;
}
//这里匹配调用
.box{
    .sjx(r,red,20px)
}
</style>

  box匹配的是t(top),也就是上

box匹配b(buttom),就是下;

总结一下匹配模式就好比是js中的switch语句,输入的是什么就显示什么;不过感觉么啥用;

7、颜色函数

<p>默认红色</p>
<p>默认绿色</p>
<ul>
    <li <li v-for="i in 6">测试</li>
</ul>
<span>混合</span>

<style lang="less" scoped>
    *{
        padding: 0;
        margin: 0;
    }
    @color:red;
    @color1:green;
    p:nth-child(1){
        background: @color;
    };
     p:nth-child(2){
        background: @color1;
    };
    ul{
        list-style: none;
            li:nth-child(1){
            background:lighten(@color,50%);
        }
            li:nth-child(2){
            background:darken(@color,50%);
        }
            li:nth-child(3){
            background:saturate(@color,50%);
        }
            li:nth-child(4){
            background:desaturate(@color,50%);
        }
            li:nth-child(5){
            background:spin(@color,50%);
        }
            li:nth-child(6){
            background:spin(@color,50%);
        }
    }
    span{
        background: mix(@color,@color1);
    }
</style>

  

8、运算符

可以对高度、宽度、角度进行计算;

<ul>
    <li v-for="item in 4">{{item}}</li>
</ul>
<style lang="less" scoped>
  @k:10px;
    ul{
        list-style: none;
           li{
               border:1px solid ;
               margin:10px 0 ;
           }
            li:nth-child(1){
                width: @k + @k;
                height:@k;
            }
            li:nth-child(2){
                width: @k -5px;
                height:@k;
            }
            li:nth-child(3){
                width: @k * @k;
                height:@k;
            }
            li:nth-child(4){
                width: @k / 2;;
                height:@k;
            }
    }
</style>

  

如果觉得不错请点点手指,关注下我们公众号,我将会长期为您分享前端基础知识点;

Vue中如何使用less的更多相关文章

  1. vue中如何不通过路由直接获取url中的参数

    前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接 ...

  2. vue中的重要特性

    一.vue中的自定义组件 html的代码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  3. Vue中comoputed中的数据绑定

    Vue中的数据实现响应式绑定是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集依赖项,当数据发生变化时在set中通过调用dep. ...

  4. vue中使用stompjs实现mqtt消息推送通知

    最近在研究vue+webAPI进行前后端分离,在一些如前端定时循环请求后台接口判断状态等应用场景用使用mqtt进行主动的消息推送能够很大程度的减小服务端接口的压力,提高系统的效率,而且可以利用mqtt ...

  5. Vue中应用CORS实现AJAX跨域,及它在 form data 和 request payload 的小坑处理

    基本概念部分(一):理解CORS 说道Vue的跨域AJAX,我想先梳理一遍CORS跨域,"跨域资源共享"(Cross-origin resource sharing),它是一个W3 ...

  6. vue中watched属性

    watched属性,vue中的观察属性,可用来监听一个值的变化 默认有两个参数,新值,旧值 data (){ return { currentCity: "深圳" } } watc ...

  7. 七、vue中v-for有时候对页面不会重新渲染,数组变化后如何到渲染页面

      v-for不能进行双向数据绑定,页面渲染完成后,再次更改v-for遍历的数据,js里面打印的数据看到数据值已经更改,但是页面的数据就是没有渲染,这是为什么呢? vue中v-for和angularj ...

  8. 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据

    前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...

  9. vue中数据双向绑定的实现原理

    vue中最常见的属v-model这个数据双向绑定了,很好奇它是如何实现的呢?尝试着用原生的JS去实现一下. 首先大致学习了解下Object.defineProperty()这个东东吧! * Objec ...

  10. Vue中之nextTick函数源码分析

    Vue中之nextTick函数源码分析 1. 什么是Vue.nextTick()?官方文档解释如下:在下次DOM更新循环结束之后执行的延迟回调.在修改数据之后立即使用这个方法,获取更新后的DOM. 2 ...

随机推荐

  1. The philosophy of ranking

    In the book Decision Quality, one will be trained to have three decision making system; one of them ...

  2. 【POJ - 2229】Sumsets(完全背包)

    Sumsets 直接翻译了 Descriptions Farmer John 让奶牛们找一些数加起来等于一个给出的数N.但是奶牛们只会用2的整数幂.下面是凑出7的方式 1) 1+1+1+1+1+1+1 ...

  3. 基于 kubeadm 部署单控制平面的 k8s 集群

    单控制平面不符合 HA 要求,但用于开发/测试环境不会有任何问题,如果资源足够的话(10台以上服务器,3台用于APIserver.3台用于 etcd 存储.至少3台用于工作节点.1台作为负载均衡),可 ...

  4. CodeForces 29D Ant on the Tree

    洛谷题目页面传送门 & CodeForces题目页面传送门 题意见洛谷里的翻译. 这题有\(\bm3\)种解法,但只有一种是正解(这不是废话嘛). 方法\(\bm1\):最近公共祖先LCA(正 ...

  5. springboot集成redis实现消息发布订阅模式-双通道(跨多服务器)

    基础配置参考https://blog.csdn.net/llll234/article/details/80966952 查看了基础配置那么会遇到一下几个问题: 1.实际应用中可能会订阅多个通道,而一 ...

  6. Python3基本数据类型之列表

    1.初识列表 列表(List)是Python3中的"容器型"数据类型. 列表通过中括号把一堆数据括起来的方式形成,列表的长度不限. 列表里面的元素可以是不同的数据类型,但是一般是相 ...

  7. shell 提取文件名和目录名

    转自http://blog.csdn.net/universe_hao/article/details/52640321 shell 提取文件名和目录名 在写shell脚本中,经常会有需要对路径和文件 ...

  8. Day3 AntV/G2图表的组成

    简介 为了更好的使用G2进行数据可视化,我们需要先了解G2图表的组成及其相关概念. 完整的G2图表组成如下图所示:可以看出图表主要由axes(坐标轴axis的复数),tooltip(提示信息),gui ...

  9. Winform 自定义文本框

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. JDK基础必备面试十问

    1. new一个对象在Java内部做了哪些工作? 从静态角度来看,new一个对象表示创建一个类的对象实例. 从JVM运行角度来看,当JVM执行到new字节码时,首先会去查看类有没有被加载到内存以及初始 ...