Existing Component
Yes
Component Name
Menu
Description
当我传入另一个变量的时候:
<ElMenu
background-color="var(--mk-aside-bg-color)"
text-color="var(--mk-aside-text-color)"
active-text-color="var(--mk-aside-active-color)"
/>
--el-menu-hover-bg-color:rgb(204, 204, 204);
计算错误:
<ul
role="menubar"
class="el-menu"
style="--el-menu-text-color:var(--mk-aside-text-color); --el-menu-hover-text-color:var(--mk-aside-text-color); --el-menu-bg-color:var(--mk-aside-bg-color); --el-menu-hover-bg-color:rgb(204, 204, 204); --el-menu-active-color:var(--mk-aside-active-color);"
></ul>
源码是根据 props.backgroundColor
计算,拿到的值是字符串 var(--mk-aside-bg-color)
,不是颜色值,但是是有效的 css color value,建议改成 window.getComputedStyle(elmenu).getPropertyValue("--el-menu-bg-color")
https://github.com/element-plus/element-plus/blob/dev/packages/components/menu/src/use-menu-css-var.ts
7条答案
按热度按时间s3fp2yjn1#
Translation of this issue:
Existing Component
Yes
Component Name
Menu
Description
When I pass in another variable:
--el-menu-hover-bg-color:rgb(204, 204, 204);
Calculation error:The source code is calculated according to 'props. BackgroundColor'. It is recommended to change it to 'window. Getcomputedstyle (elmenu). Getpropertyvalue ("-- El menu BG color")`
https://github.com/element-plus/element-plus/blob/dev/packages/components/menu/src/use-menu-css-var.ts
yhived7q2#
直接
<ElMenu style="--el-menu-hover-bg-color: xxx;" />
覆盖的话,只有第一层有效,嵌套的子菜单又会计算错误。igetnqfo3#
而且,当--el-menu-bg-color 比较深的时候,计算出来的 --el-menu-hover-bg-color 几乎没变,没有什么存在感了。建议智能使用 darken() 或 lighten()
wqlqzqxt4#
@YunYouJun cc
ki0zmccv5#
有消息吗
4nkexdtk6#
TODO.
o4hqfura7#
还有一个建议,props 里面的颜色值全都用 css 变量代替,反正 js 可以获取到。