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

如何覆盖Material UI中继承自@ .MuiAlert-icon的padding属性

问题根源

你当前写法有两个核心问题导致样式不生效:

  • 选择器逻辑错误:你写的& .MuiAlert-icon是匹配classes.icon对应元素的子元素中的.MuiAlert-icon节点,但实际上.MuiAlert-icon是Alert组件内部包裹你传入的自定义icon的外层容器,你的Icon组件是它的子元素,这个选择器完全匹配不到目标节点。
  • 样式值错误:CSS中padding的有效值没有none,要取消内边距需要设为0。

正确实现方案

推荐使用MUI官方提供的组件内置类覆写方式,不会污染全局样式,修改后的代码如下:

import Alert from "@material-ui/lab/Alert";
import Icon from "@material-ui/core/Icon";
import { makeStyles } from "@material-ui/core";
  
const useStyles = makeStyles({
  // 用于覆写Alert内置的icon容器样式
  customAlertIcon: {
    padding: 0,
  },
  // 用于自定义Icon组件本身的样式
  customIcon: {
    overflow: 'visible',
  }
});
  
interface idVerifyProps {
  status: string; 
}

const IDverify = ({ status }: idVerifyProps) => {
  const classes = useStyles();
  const svgIcon = (
    <Icon className={classes.customIcon}>
      <img alt="edit" src="../../../checkIcon.png" />
    </Icon>
  );
  return (
    <div >
      <Alert 
        severity="error" 
        style={{ backgroundColor: "#E6FFE9" }}
        icon={svgIcon}
        // 给Alert传入classes属性,覆写对应内置类的样式
        classes={{
          icon: classes.customAlertIcon
        }}
      >
        {status}
      </Alert>
    </div>
  );
};

export default IDverify;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:45:09