微信小程序 vant 样式覆盖与定制主题

3种方式修改组件样式

1. 解除样式隔离

直接在页面的样式文件中覆盖样式

wxml:

<van-button type="primary">主要按钮</van-button>

wxss:

.van-button--primary { font-size: 20px; background-color: pink; }

注意:在自定义组件中使用vant组件时,需要开启

styleIsolation: 'shared'

如:

Component({
  options: {
    styleIsolation: 'shared',
  },
});

2. 使用外部样式

具体的样式类名称可查阅对应组件的“外部样式类”部分。

注意:普通样式类和外部样式类的优先级是未定义的,因此使用时请添加!important以保证外部样式类的优先级

3. 使用CSS变量

解除样式隔离 和 使用外部样式类,这种方案支持在页面或应用级别对多个组件的样式做批量修改以进行主题样式的定制。

定制单个组件的主题样式

在 wxss 中为组件设置 CSS 变量

wxml:

<van-button class="my-button">
  默认按钮
</van-button>

wxss:

.my-button {
  --button-border-radius: 10px;
  --button-default-color: #f2f3f5;
}

或通过 style 属性来设置 CSS 变量,这使你能够轻松实现主题的动态切换

wxml:

<van-button style="{{ buttonStyle }}">
  默认按钮
</van-button>

wxss:

Page({
  data: {
    buttonStyle: `
      --button-border-radius: 10px;
      --button-default-color: green;
    `,
  },

  onLoad() {
    setTimeout(() => {
      this.setData({
        buttonStyle: `
          --button-border-radius: 2px;
          --button-default-color: pink;
        `,
      });
    }, 2000);
  },
});

定制多个组件的主题样式

与单个组件的定制方式类似,只需用一个 container 节点包裹住需要定制的组件,并将 CSS 变量 设置在 container 节点上

定制全局主题样式

page {
  --button-border-radius: 10px;
  --button-default-color: #f2f3f5;
  --toast-max-width: 100px;
  --toast-background-color: pink;
}

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
微信小程序Vant Collapse是一个折叠面板组件,它可以将一组内容放置在多个折叠面板,并通过点击面板的标题来展开或收缩其内容。你可以在Vant官方文档找到关于Vant Collapse的详细介绍和使用方法。 在脚本流程,你需要先获取使用的页面和组件,然后再获取这些组件使用到的Vant组件。在获取到的组件,你可以删除未使用到的Vant组件,以减小项目的体积。这样可以优化小程序的性能。 关于对Vant Collapse组件样式修改,你可以使用Vant-weapp提供的样式类来尝试改变样式。如果你想要修改主面板的样式,你可以进一步探索如何实现。总结起来,Vant Collapse是一个非常实用的组件,可以帮助你实现折叠面板的功能,并通过自定义样式满足你的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [小菜鸟的微信小程序 - 云开发 - 账号密码库(2)vant-weapp 组件样式修改](https://blog.csdn.net/tfnmdmx/article/details/119797803)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [微信小程序vant 按需引入](https://blog.csdn.net/lgldl/article/details/127605555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值