修改el-menu激活时的背景色

6,111 阅读1分钟

今天工作中有一个需求,需要修改el-menu中菜单激活时的背景色。

el-menu默认提供的属性仅支持修改整体背景色,以及文字的颜色,没有提供修改menu激活时的背景色相关的属性,所以只能通过添加css来实现,在此记录下修改的方法。

这里同时记录下与el-menu一些相关的css变量,可以直接覆盖来修改默认样式。

变量名说明
--el-menu-text-color默认状态下字体颜色
--el-menu-hover-text-color悬停状态下字体颜色
--el-menu-active-color激活状态下字体颜色
--el-menu-bg-color整个菜单栏背景色
--el-menu-hover-bg-color菜单item悬停状态下背景色

当菜单item激活时,默认会在此item上添加一个is-active类,通过给这个类添加一个背景色就可以实现激活时的背景色更改。

<style scope>
:deep(.is-active) {
    background-color: red !important;
}
</style>

注意1:这里需要使用深度作用选择器,不然样式无法生效,或者可以把style标签中的scope去掉。 注意2:这里的!important是一定要加的,不然激活时会出现一个bug,就是每次激活时,我指定的背景色会一闪而过,然后就没了,加上!important就不会出现问题,目前还不知道为什么,感觉自己太菜了😄

其它:当修改了背景色后,发现默认的el-menu还有边框,如果要去除边框,需要同时覆盖el-menu类、el-menu-item类以及is-active类中的border属性

新手小菜鸟,如果大家发现有什么不对的,欢迎指出,感谢!