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

依赖下载

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

  1. npm install --save less less-loader

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

  1. lessc -v

  

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

引用方法

1、在main.js

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

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

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

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

开始使用

1、less中变量的使用;

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

  1. <div class="box"></div>
  2.  
  3. <style lang="less">
  4. @color:red;
  5. @k:100px;
  6. .box{
  7. width:@k;
  8. height:@k;
  9. background: @color;
  10. }
  11. </style>

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

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

  1. <div class="box1"></div>
  2.  
  3. <style lang="less" scoped>
  4. @img:'./img/';
  5. @k:100px;
  6. .box1{
  7. width:@k;
  8. height:@k;
  9. background:url("@{img}1.png")
  10. }
  11. </style>

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

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

  1. <div class="box1">
  2. <div class="box2">
  3. <div class="box3"></div>
  4. </div>
  5. </div>
  6.  
  7. <style lang="less">
  8. @k:100px;
  9. .box1{
  10. width: @k;
  11. height:@k;
  12. background: red;
  13. .box2{
  14. width: @k/2;
  15. height:@k/2;
  16. background: green;
  17. .box3{
  18. width: @k/3;
  19. height:@k/3;
  20. background: blue;
  21. }
  22. }
  23. }
  24. </style>

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

4、混合 = 函数

  1. <div class="box1">我是box1</div>
  2. <div class="box2">我是box2</div>
  3.  
  4. <style lang="less">
  5. //定义一个函数;
  6. .test(@color:red,@size:14px){
  7. background: @color;
  8. font-size:@size;
  9. }
  10. .box1{
  11. // 不传参,使用默认的;
  12. .test()
  13. }
  14. .box2{
  15. // 给函数传参;
  16. .test(@color:green,@size:30px)
  17. }
  18. </style>

  

5、匹配模式

  1. <div class="box"></div>
  2. //定义的css
  3. <style lang="less">
  4. .sjx(@_,@color,@size){
  5. width: 0;
  6. height:0;
  7. border:@size solid @color;
  8. border-color:transparent;
  9. }
  10. //左边三角形
  11. .sjx(l,@color,@size){
  12. border-left-color:@color;
  13. }
  14. //上边三角形
  15. .sjx(t,@color,@size){
  16. border-top-color:@color;
  17. }
  18. //右边三角形
  19. .sjx(r,@color,@size){
  20. border-right-color:@color;
  21. }
  22. //左边三角形
  23. .sjx(b,@color,@size){
  24. border-bottom-color:@color;
  25. }
  26. //这里匹配调用
  27. .box{
  28. .sjx(r,red,20px)
  29. }
  30. </style>

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

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

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

7、颜色函数

  1. <p>默认红色</p>
  2. <p>默认绿色</p>
  3. <ul>
  4. <li <li v-for="i in 6">测试</li>
  5. </ul>
  6. <span>混合</span>
  7.  
  8. <style lang="less" scoped>
  9. *{
  10. padding: 0;
  11. margin: 0;
  12. }
  13. @color:red;
  14. @color1:green;
  15. p:nth-child(1){
  16. background: @color;
  17. };
  18. p:nth-child(2){
  19. background: @color1;
  20. };
  21. ul{
  22. list-style: none;
  23. li:nth-child(1){
  24. background:lighten(@color,50%);
  25. }
  26. li:nth-child(2){
  27. background:darken(@color,50%);
  28. }
  29. li:nth-child(3){
  30. background:saturate(@color,50%);
  31. }
  32. li:nth-child(4){
  33. background:desaturate(@color,50%);
  34. }
  35. li:nth-child(5){
  36. background:spin(@color,50%);
  37. }
  38. li:nth-child(6){
  39. background:spin(@color,50%);
  40. }
  41. }
  42. span{
  43. background: mix(@color,@color1);
  44. }
  45. </style>

  

8、运算符

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

  1. <ul>
  2. <li v-for="item in 4">{{item}}</li>
  3. </ul>
  4. <style lang="less" scoped>
  5. @k:10px;
  6. ul{
  7. list-style: none;
  8. li{
  9. border:1px solid ;
  10. margin:10px 0 ;
  11. }
  12. li:nth-child(1){
  13. width: @k + @k;
  14. height:@k;
  15. }
  16. li:nth-child(2){
  17. width: @k -5px;
  18. height:@k;
  19. }
  20. li:nth-child(3){
  21. width: @k * @k;
  22. height:@k;
  23. }
  24. li:nth-child(4){
  25. width: @k / 2;;
  26. height:@k;
  27. }
  28. }
  29. </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. 【Java例题】1.1计算n的阶乘

    package study; import java.util.*; import java.math.*; public class myClass { public static void mai ...

  2. Zookeeper的命令行操作(三)

    Zookeeper的命令行操作 1. ZooKeeper服务命令 在准备好相应的配置之后,可以直接通过zkServer.sh 这个脚本进行服务的相关操作 1. 启动ZK服务: sh bin/zkSer ...

  3. red hat enterprise Linux 64 bit 配置IP

    在win7 64位操作系统的台式机器上,安装了VMware® Workstation,9.0.1 build-894247.新建一个虚拟机安装linux.具体过程请搜索相关文档.安装的时候选择的网络连 ...

  4. WebService1

    一.什么是WebService(来源百度百科) Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述. ...

  5. Redis回顾

    之前有两篇文章着重介绍了redis集群的搭建和redis与spring的整合,一个月过去了,现在有些忘记了,今天又拿过来稳固一下,发现有很多的东西都忘记了. 资料汇总下载 首先安装ruby环境 安装过 ...

  6. js拖拽上传图片

    有时候,在开发中,需要遇到拖拽上传图片的需求,即从磁盘选中一张或多张图片,然后按着鼠标把图片拖动到页面上指定的区域,实现图片的上传. 1.后端上传图片的接口 我是之前用vue写一个简单的后台系统的时候 ...

  7. 基于.NET Core开发的个人博客发布至CentOS小计

    早些时候,使用 .NET Framework 开发网站,只能部署在 Windows 服务器上面,近两年 .NET Core 如火如荼,乘此机会赶紧上车,最近将自己利用 .NET Core 开发的个人博 ...

  8. (三十一)c#Winform自定义控件-文本框(四)

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  9. Kafka之Producer

    通过https://www.cnblogs.com/tree1123/p/11243668.html 已经对consumer有了一定的了解.producer比consumer要简单一些. 一.旧版本p ...

  10. c排序

    #pragma once//如果写头文件 放置头文件重复包含 #include<stdio.h> //定义类型 结构体类型定义 //宏定义 #define //函数申明 void prin ...