如何修改vant的less样式变量

目录
  • 修改vant的less样式变量
  • vant组件的样式修改
    • 例如
    • 可以在app的样式中加入
    • 效果如图
    • 后面灵机一动,又想到了一个新的方法
    • 加了一个btn 的类名:提高权限,限制样式条件

修改vant的less样式变量

引入全局css

import ‘vant/lib/index.css';

引入单个组件样式

import ‘vant/lib/toast/style/less';

新建一个less文件,用于修改vant的less变量

如conver_vant.less,在里面修改变量

//toast
@toast-background-color:blue;
@action-sheet-max-height:80%!important;

在vue.config.js里按照官方提示配置

这里注意要使用绝对路径,并且@import 后面记得跟双引号""。

const path = require('path')
module.exports = {
    css:{
        loaderOptions:{
            less:{
                modifyVars:{
                    //通过本地less文件覆盖变量
                    // true; @import "your-less-file-path.less";
                    hack:`true;@import "${path.resolve(__dirname,'./src/common/cover_vant.less')}";`
                }
            }
        }
    }
}

修改完重新运行npm run serve才能看到效果。

vant组件的样式修改

主要还是在VUE中使用vant组件,一些样式的修改。

例如

这样的一个组件,我们修改他的样式,这里是我修改过后的样式,原来是白色的。

可以在app的样式中加入

.van-dropdown-menu__bar {
   background: #6609f2 !important;
   box-shadow: none !important;
 }
.van-dropdown-menu__title,
.van-dropdown-menu__title--active {
   color: #fff !important;
 }

这里类名如何得知呢?通过网页审查元素得到。

但这样修改会产生一个问题,就是这个样式成为全局的了。

别的页面使用,也会是这样一个样式。

这个时候,可以在单独页面中设置,但要注意的是把spcoed去掉,不然不生效。

<style lang='less'>
.van-dropdown-menu__bar {
  background: #6609f2 !important;
  box-shadow: none !important;
}
.van-dropdown-menu__title,
.van-dropdown-menu__title--active {
  color: #fff !important;
}
</style>

效果如图

但后来又发现又有新的问题,子组件在相同的页面,修改掉,但不能同时展现两个。

后面灵机一动,又想到了一个新的方法

html结构:

        <van-dropdown-menu class="btn">
          <van-dropdown-item v-model="valueCity" :options="optionCity" @change="changeCity" />
          <van-dropdown-item v-model="valuePrice" :options="optionPrice" @change="changeDropdown" />
          <van-dropdown-item v-model="valueYear" :options="optionYear" @change="changeYear" />
        </van-dropdown-menu>

加了一个btn 的类名:提高权限,限制样式条件

css:

<style lang="less" >
.btn > .van-dropdown-menu__bar {
  background: #fff !important;
}
.btn .van-dropdown-menu__title {
  color: #333 !important;
}
</style>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解基于Vue cli开发修改外部组件Vant默认样式

    前言 在引入外部组件的时候,想要修改默认样式,可以通过class修改,但一般会有权重不够等各种原因,官网其实列出了一套主题定制的方案,通过覆盖配置文件来修改样式,官网地址:主题定制 提示:以下是本篇文章正文内容,下面案例可供参考 一.Less 因为Vant 使用了 Less 对样式进行预处理,并内置了一些样式变量,可以通过替换样式变量即可定制你自己需要的主题. 给你的项目配置less: npm install less --save-dev npm install less-loader --s

  • Vant主题定制如何修改颜色样式

    目录 Vant主题定制修改颜色 使用场景 第一种:完全替换主题色或其他样式 第二种:直接覆盖样式 Vant自定义主题颜色 先看效果图 步骤方法 Vant主题定制修改颜色 使用场景 需要修改vant组件的颜色或其他的样式时,可以用以下方法进行自定义修改. 一个简单的效果: 第一种:完全替换主题色或其他样式 用Vant官方提供的方法进行定制: 1.main.js引入样式原文件 // 引入全部样式 import 'vant/lib/index.less'; // 引入单个组件样式 import 'va

  • 解决vant-UI库修改样式无效的问题

    最近用vue写页面时,发现使用vant的有些UI组件,而又不能满足自己的样式,修改CSS样式还是无效.css一般都会使用sass或者less,加了scoped后修改的样式不起作用,即使加了important也没用 vue项目中,当<style>标签有scoped属性时,它的 CSS 样式只作用于当前组件中的元素,父组件的样式将不会渗透到子组件中. 解决办法: 1.对于css语法起作用 使用深度选择器,使用 >>> 操作符,将scoped样式中的选择器"深入"

  • 如何修改vant的less样式变量

    目录 修改vant的less样式变量 vant组件的样式修改 例如 可以在app的样式中加入 效果如图 后面灵机一动,又想到了一个新的方法 加了一个btn 的类名:提高权限,限制样式条件 修改vant的less样式变量 引入全局css import 'vant/lib/index.css'; 引入单个组件样式 import 'vant/lib/toast/style/less'; 新建一个less文件,用于修改vant的less变量 如conver_vant.less,在里面修改变量 //toa

  • 解决vue加scoped后就无法修改vant的UI组件的样式问题

    有时候UI组件提供的默认的样式不能满足项目的需要,就需要我们对它的样式进行修改,但是发现加了scoped后修改的样式不起作用. 解决方法: 使用深度选择器,将scoped样式中的选择器"深入",即影响子组件 <style scoped> .a >>> .b { /* ... */ } </style> 以上的代码会编译成: .a[data-v-f3f3eg9] .b { /* ... */ } 注意:如果你使用了Less或Sass等预处理器,可

  • vue 修改vant自带的样式过程

    目录 修改vant自带的样式 解决办法 vant的样式怎么修改不了? 修改vant自带的样式 今天用vue写页面时,发现使用vant的有些UI组件,而又不能满足自己的样式,修改CSS样式还是无效. css一般都会使用sass或者less,加了scoped后修改的样式不起作用,即使加了important也没用. 在vue项目中,当style 标签有scoped属性时,它的 CSS 样式只作用于当前组件中的元素,父组件的样式将不会渗透到子组件中. 解决办法 1.对于css语法起作用 使用深度选择器,

  • JS添加或修改控件的样式(Class)实现方法

    使用js 给页面组件添加class 或者删除class,以及使用jquery的方式添加或修改. <input id="txtBianCeng" type="text" /> .lezhu99 { color:#cc0000; } 添加或修改样式(Class) document.getElementById("txtBianCeng").className = "lezhu99"; 删除样式(Class) docum

  • jQuery修改li下的样式以及li下的img的src的值的方法

    jQuery如何修改li下的样式,以及修改li下的img的src的值,下面是具体的实现代码,需要的朋友可以看看 $(".test li").click(function() { $(".test li a").removeClass("test01"); $(".test li a").addClass("test02"); $("a", this).removeClass("

  • vue 动态修改a标签的样式的方法

    公司要做一个类似今日头条的项目,用前后端分离的方式做成HTML5页面,先在微信中运行,领导说想看看效果怎么样.今日头条头部的导航是可以滚动和添加类别的,我们这个项目也是一样.所以在导航这个地方就需要在点击不同分类的同时,样式也是跟着变的,我在网上搜索了一下,发现了下面的代码,简洁清淅,不过具体网址忘记了,先把代码贴出来给大家看一下,想知道网址的可以去网上搜索一下. <!DOCTYPE html> <html lang="en"> <head> <

  • vue2中使用sass并配置全局的sass样式变量的方法

    Sass语言 Sass是一种强大的css扩展语言(css本身并不是一门语言),它允许你使用变量.嵌套规则.mixins.导入等css没有但开发语言(如Java.C#.Ruby等)有的一些特性,并且完全兼容CSS语法.Sass有助于保持大型样式表结构良好.       Sass有两种语法. 一种称为SCSS,是一个CSS3语法的扩充版本,也就是说,所有符合CSS3语法的样式表也都是具有相同语法意义的SCSS文件,SCSS样式表文件要以.scss扩展名结尾.在vue中,我们可以使用<style la

  • vue修改Element的el-table样式的4种方法

    修改Element中的el-table样式,可以使用以下几种方法: 1. row-style 行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style. 2. cell-style 单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有单元格设置一样的 Style. 3. header-row-style 表头行的 style 的回调方法,也可以使用一个固定的 Object 为所有表头行设置一样的 Style. 4. header-c

  • Python快速优雅的批量修改Word文档样式

    需求描述 手上现有若干份财务分析报告的Word文档,如下: 每一份Word文档中的内容如下: 为了方便后续审阅,需要将所有文档中所有含有资金的语句标红加粗,如图所示 步骤分析和前置知识 为了解决这个需求简单复习一下相关知识.Word文档一般而言由文档(document) - 段落(paragraph) - 文字块(run) 三级结构组成: 从需求反馈中可以看出,本质上我们需要做的就是对所有含有资金的文字块Run进行样式调整 因此,本需求的逻辑如下: 1.创建一个空文件夹(用于存放修改后的财务报告

  • 在js中修改html body的样式

    目录 一.原始定义 二.js操作,以修改宽度为例 三.效果:宽度已被修改 一.原始定义 先在css中定义:body, html 宽高为300px body, html { width: 300px; height: 300px; } 二.js操作,以修改宽度为例 // 获取body.html节点style(主要是这里html,一开始不清楚获取方式) let bodyStyle = document.body.style let htmlStyle = document.getElementsBy

随机推荐