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

如何通过Material-UI的sx属性正确设置Button组件背景色?

正确设置Material-UI Button背景色的sx写法

你之前的问题出在没必要嵌套额外的类选择器,而且选择器的写法也不对。用sx属性时,样式直接作用于Button组件的根元素,不需要再通过MuiButtonBase-root-MuiButton-root来定位,直接写属性就能覆盖默认样式。

基础写法(直接覆盖默认背景色)

<Button
  className="font-semibold"
  sx={{
    boxShadow: "none",
    color: "#4a92fe",
    border: "2px solid #eaecf0",
    backgroundColor: "red", // 直接设置背景色
  }}
  variant="contained"
  fullWidth
  onClick={onClickApplyHandler}
>
  Aplicar
</Button>

覆盖不同状态的背景色(比如hover、active)

如果需要给按钮的hover、点击等状态单独设置背景色,用伪类结合&(指向当前组件)即可:

<Button
  className="font-semibold"
  sx={{
    boxShadow: "none",
    color: "#4a92fe",
    border: "2px solid #eaecf0",
    backgroundColor: "red",
    // hover状态的背景色
    "&:hover": {
      backgroundColor: "#cc0000",
      boxShadow: "none", // 同时去掉hover时的默认阴影
    },
    // 点击激活状态的背景色
    "&:active": {
      backgroundColor: "#990000",
    }
  }}
  variant="contained"
  fullWidth
  onClick={onClickApplyHandler}
>
  Aplicar
</Button>

为什么之前的写法失效?

你写的& MuiButtonBase-root-MuiButton-root是错误的选择器语法——类选择器前面需要加.,而且这个类本身就是Button的根类,sx已经作用在这个元素上了,完全没必要额外嵌套,直接写样式属性的优先级足够覆盖默认样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:43:25