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

解决vant-UI库修改样式无效的问题,需要先了解vant-UI库的样式覆盖机制。vant-UI库的样式使用了CSS Modules技术,每个组件的样式都被编译后生成对应的唯一类名,以避免样式冲突。在修改vant-UI库的样式时,无法直接修改组件已有的样式,需要使用深度选择器进行样式覆盖。

攻略:

  1. 安装 postcss-pxtorem 插件

postcss-pxtorem 插件可以将 px 单位自动转换为 rem 单位,方便在移动端开发时进行适配。

npm install postcss-pxtorem --save-dev 
  1. 修改项目根目录下的 postcss.config.js 文件

在文件中添加 postcss-pxtorem 插件的配置

module.exports = {
  "plugins": {
    "postcss-pxtorem": {
      "rootValue": 37.5,
      "propList": ["*"]
    }
  }
}
  1. 修改 webpack 配置

在项目根目录下的 vue.config.js 文件中,添加 configureWebpack 配置如下:

module.exports = {
  configureWebpack: {
    module: {
      rules: [
        {
          test: /\.less$/,
          use: [
            {
              loader: 'sass-loader',
              options: {
                implementation: require('sass')
              }
            },
            {
              loader: 'less-loader',
              options: {
                lessOptions: {
                  modifyVars: {
                    // 在此处修改vant组件库样式
                    // 例如修改按钮颜色为红色:
                    'button-primary-background-color': 'red'
                  }
                }
              }
            }
          ]
        }
      ]
    }
  }
}

示例1:修改 vant-button 样式

  1. 安装 vant UI 库
npm i vant -S
  1. 修改 webpack 配置

在 vue.config.js 中添加以下配置:

module.exports = {
  configureWebpack: (config) => {
    config.module.rules.forEach((rule) => {
      if (
        String(rule.test) ===
        String(
          /\\.module\\.(css|scss|sass|less)$/i
        )
      ) {
        rule.oneOf[0].use.push({
          loader: "style-resources-loader",
          options: {
            patterns: [
              // vant 样式
              path.resolve(
                __dirname,
                "./src/assets/style/vant.less"
              ),
            ],
          },
        });
        return;
      }
    });
  },
};

其中,添加了 style-resources-loader 模块,用于打包 vant 样式。

  1. 在项目中使用 vant-button 组件

在 .vue 文件中添加以下代码:

<template>
  <van-button class="my-button">自定义样式按钮</van-button>
</template>

<style lang="scss" scoped>
.my-button {
  color: #f00; // 改变按钮文字颜色
  background-color: #ff0; // 改变按钮背景色
}
</style>
  1. 重新编译并查看效果

示例2:修改 vant-cell 样式

  1. 修改 webpack 配置

同示例1,在 vue.config.js 中添加 style-resources-loader 模块,用于打包 vant 样式。

  1. 修改 vant-cell 样式

在 .vue 文件的 style 标签中添加以下代码:

<style lang="less" scoped>
::v-deep .van-cell__title {
  color: green;
}
</style>

其中,::v-deep 是深度选择器,用于覆盖 vant-cell 组件中的标题样式。

  1. 重新编译并查看效果

以上两个示例均为使用深度选择器修改 vant UI 库组件样式的方法。当然,你也可以通过修改 less 变量的方法来改变整体风格,方法为将需要修改的变量值覆盖即可。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决vant-UI库修改样式无效的问题 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • base64图片在各种浏览器的兼容性处理

    base64图片是通过将图片数据转换成base64编码字符串的方式,来实现在网页上展示图片的技术。但是由于不同浏览器的实现方式和支持程度不同,可能导致在某些浏览器中无法正常地显示base64图片,并且这也会影响网页的兼容性和用户体验。 针对这个问题,我们可以采用如下策略来处理base64图片的兼容性问题: 1. 使用CSS sprite技术 CSS Spri…

    css 2023年6月13日
    00
  • ExtJS自定义主题(theme)样式详解

    下面我来为你详细讲解“ExtJS自定义主题(theme)样式详解”的完整攻略。 一、什么是ExtJS主题(theme)? 在 ExtJS 中,主题 (theme) 可以定义应用程序的整体外观,例如字体、颜色、样式等元素。主题有自己的文件及文件夹,其中包含了 CSS, images以及其他资源。 通过使用主题,我们可以快速地创建一个自定义的漂亮应用程序。 二、…

    css 2023年6月10日
    00
  • 玩转jQuery按钮 请告诉我你最喜欢哪些?

    玩转jQuery按钮 当我们开发网站或者应用的时候,按钮是经常使用的UI元素,有时候一个好看而又有趣的按钮能够让用户印象深刻。而使用jQuery可以让我们在按钮方面更加灵活地运用。 常见的jQuery按钮 在jQuery中,有一些常见的按钮样式和功能,包括按钮的hover、active效果、按钮的禁用、表单提交等。 悬停按钮 悬停按钮是一种常见的UI元素,可…

    css 2023年6月10日
    00
  • CSS常用样式简单的总结包括定位、显示等属性

    下面是详细讲解“CSS常用样式简单的总结包括定位、显示等属性”的完整攻略。 1. CSS样式的基本概念 在网页布局中,CSS样式主要用于控制网页元素的外观和排列方式,包括文本样式、盒模型、定位以及布局等。在样式定义时,常用的属性有字体、背景、外边距、内边距、边框、高度、宽度、定位、浮动等。 2. CSS定位 CSS定位主要用于控制元素的位置,包括绝对定位、相…

    css 2023年6月9日
    00
  • CSS3圆角边框和边界图片效果实例

    那么让我们来详细讲解“CSS3圆角边框和边界图片效果实例”的完整攻略。 一、CSS3圆角边框效果 1.1 border-radius属性 border-radius属性是CSS3中新增的一种属性,它可以实现圆角边框的效果。该属性可以设置1到4个参数值,分别表示左上角、右上角、右下角和左下角的半径,如果缺省,则默认为0。 div{ width: 100px; …

    css 2023年6月10日
    00
  • CSS使用Flex和Grid布局实现3D骰子

    一、Flex布局实现3D骰子 准备工作 首先,在HTML页面中添加一个div作为3D骰子的外层容器。在该容器中,使用6个div分别作为6个面。 <div class="dice"> <div class="front"></div> <div class="top&q…

    css 2023年6月10日
    00
  • Vue3.0之引入Element-plus ui样式的两种方法

    下面我将为您详细讲解“Vue3.0之引入Element-plus ui样式的两种方法”的完整攻略。 1. 引入element-plus官方scaffold示例 打开命令行工具,进入Vue3.0项目根目录; 安装element-plus依赖:npm install element-plus –save; 在main.js文件中引入element-plus的样…

    css 2023年6月9日
    00
  • jQuery 选择表格(table)里的行和列及改变简单样式

    选择表格里的行和列并改变样式的完整攻略如下: 使用jQuery选择表格的行和列 首先,我们应该使用 $(“table”) 选择器来选取到表格元素。然后,可以根据选择器 $(“:first-child”) 、$(“:last-child”),$(“td:nth-child(n)”)、$(“th:nth-child(n)”) 等方法来选择表格特定的行和列。 下面…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部