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

如何在MaterialUI v5中覆写嵌套子组件ToggleButton的样式?

解决ToggleButton作为ToggleButtonGroup子组件时的样式修改问题

你之前的样式不生效是因为选择器写法错误:&指代当前StyledToggleGroup组件的根元素类,直接写&.xxx是给组件自身添加样式,而非选中内部的ToggleButton子组件。需要改用后代选择器来定位子组件:

修改后的StyledToggleGroup样式代码:

const StyledToggleGroup = styled(ToggleOptionsGroup)(
    ({ theme: { palette, spacing } }) => ({
      height: spacing(10),
      borderRadius: '6px',
      boxShadow: 'none',

      '&:hover': {
        boxShadow: 'none',
      },
      '&.MuiToggleButtonGroup-root':{
        gap: '0px'
      },
      // 选中组内所有标准样式的ToggleButton
      '& .MuiToggleButton-standard':{
        backgroundColor:'red',
      },
      // 选中组内处于选中状态的ToggleButton
      '& .MuiToggleButtonGroup-grouped.Mui-selected': {
        backgroundColor:'green',
      }
    })
);

关键说明:

  • & .MuiToggleButton-standard:通过空格分隔,匹配当前组件下所有带有MuiToggleButton-standard类的后代元素(即内部的ToggleButton)
  • & .MuiToggleButtonGroup-grouped.Mui-selected:匹配当前组件下同时拥有MuiToggleButtonGroup-grouped和Mui-selected类的元素,对应分组内被选中的按钮
  • 如果需要仅匹配直接子节点的ToggleButton,可以把空格换成>,比如& > .MuiToggleButton-standard

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:40:18