先看问题效果

el-submenu折叠失效,文字和>显示_嵌套


这里的​​el-menu​​​中的​​:collapse​​​已经设置为​​true​​了,但是文字和>还是显示了出来,而且悬浮上去确实也有折叠时的效果如下。

el-submenu折叠失效,文字和>显示_菜单项_02


这里研究了一下,发现只要我把​​el-submenu​​​直接放入到​​el-menu​​​中是可以的,但是实际业务中做动态路由的时候会带着菜单项也为动态的,那么基本上就会吧菜单项抽离为组件然后循环渲染,​​但是由于 element-ui 的<el-menu>标签本身希望里面嵌套的是<el-menu-item>,<el-submenu>,<el-menu-item-group>之一,但是却嵌套了<div>,而导致收折就隐藏不了文字​​那么解决方案就来了,我们手动写样式将文字和>隐藏!

<style>
/*由于 element-ui 的<el-menu>标签本身希望里面嵌套的是<el-menu-item>,<el-submenu>,<el-menu-item-group>之一,但是却嵌套了<div>,而导致收折就隐藏不了文字*/
/*隐藏文字*/
.el-menu--collapse .el-submenu__title span{
display: none;
}
/*隐藏 > */
.el-menu--collapse .el-submenu__title .el-submenu__icon-arrow{
display: none;
}
</style>

注意​​<style>​​标签中不要加scope,否则导致>还是无法隐藏

el-submenu折叠失效,文字和>显示_解决方案_03