今天工作中有一个需求,需要修改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属性
新手小菜鸟,如果大家发现有什么不对的,欢迎指出,感谢!