如何修改vant组件库中下拉菜单的背景色

一、前言

vant 组件库在前端 APP 开发中可以说出现的频率是非常高的,但是刚开始接触时总会遇到一些难以解决的问题,尤其是下拉菜单的(van-dropdown-menu)背景色,这篇博客将为你彻底高效的解决这个问题。


二、使用过程及问题描述

1、下拉菜单的使用

<van-dropdown-menu>
    <van-dropdown-item title="我的经验方法" v-model="value1" :options="option1" />
</van-dropdown-menu>

2、 修改下拉菜单样式

浏览器端获取 class 类名和样式

.van-dropdown-menu__bar {
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    height: 48px;
    background-color: #fff;
    /* box-shadow: 0 2px 12px rgb(100 101 102 / 12%); */
}

可以看到下拉菜单的原始背景色是白色的,现在修改其背景色为橘黄色

<style lang="less" scoped>
 .van-dropdown-menu__bar {
	background-color: #eb8f00 !important;
}
<style>

这是就会发现修改的背景色并没有效果,还是白色,尝试将其进行深度渲染看看

<style lang="less" scoped>
 /deep/.van-dropdown-menu__bar {
	background-color: #eb8f00 !important;
}

//或者

 ::deep.van-dropdown-menu__bar {
	background-color: #eb8f00 !important;
}
<style>

使用深度渲染后发现还是没有效果,是不是快崩溃了,要不要再为其添加父元素 class 类名指向提高可读性看看,别想了,深度渲染都没用呢,往下看吧!!!!

三、解决问题的方法

1、去除 style 中的 scoped

<style lang="less">
 .van-dropdown-menu__bar {
	background-color: #eb8f00 !important;
}
<style>

2.为其父元素添加一个类名,再指向它,不然会造成全局样式污染,其他使用过下拉菜单组件的背景色也会跟着变

<van-dropdown-menu calss="my_dropdown_menu">
    <van-dropdown-item title="我的经验方法" v-model="value1" :options="option1" />
</van-dropdown-menu>
.my_dropdown_menu > .van-dropdown-menu__bar {
	background-color: #eb8f00 !important;
}

 

posted @ 2022-10-17 21:53  CodeFan*  阅读(2277)  评论(0编辑  收藏  举报