You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用sx属性覆盖MUI选中MenuItem的CSS样式?

解决MUI MenuItem选中状态样式不生效的问题

问题出在选择器的使用上——MUI的MenuItem组件不是用:selected原生伪类来标记选中状态的,而是会给选中的MenuItem元素添加一个Mui-selected的自定义类名。你原来的:selected选择器匹配不到任何元素,所以选中样式不生效。

修改后的样式代码如下:

const MenuItemStyle = {
  '&:hover': {
    backgroundColor: `${theme.color.secondaryHover}`,
  },
  // 改用MUI的选中类选择器
  '&.Mui-selected, &.Mui-selected:hover': {
    backgroundColor: `${theme.color.secondaryHover}`,
  },
  '&:focusVisible': {
    backgroundColor: `${theme.color.secondaryHover}`,
  },
}

替换后,选中和选中时hover的样式就能正常生效了。另外补充下,MUI大部分组件的状态(比如选中、禁用等)都是通过这类自定义类来实现的,而非原生伪类,遇到类似问题可以直接查看组件的DOM结构,确认对应的类名后再写样式。

内容的提问来源于stack exchange,提问作者ju_ro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 16:23:14