Material-UI 的 Snackbar 为什么样式不生效? 南宫耘博 提问于 2026-03-04 22:04:18 阅读 27 组件 我用 Material-UI 的 Snackbar 组件,想自定义它的背景色和文字颜色,但加了 sx 样式没反应。试过用 styled 包裹也不行,是不是被默认样式覆盖了? 这是我在组件里写的 CSS 覆盖尝试: .MuiSnackbarContent-root { background-color: #ff6b6b !important; color: white !important; } 我来解答 赞 3 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 2 条解答 萌新.小倩 Lv1 哈,这个问题我踩过坑!Material-UI v5开始用 emotion 做样式引擎,导致很多老方法不灵了。别走弯路,给你两个靠谱方案: 方案1:用 sx prop 直接写在 Snackbar 上(注意不是Content!) sx={{ '& .MuiSnackbarContent-root': { backgroundColor: '#ff6b6b', color: 'white' } }} /> 方案2:styled-components 写法(确保装了@mui/system) import { styled } from '@mui/system'; const StyledSnackbar = styled(Snackbar)({ '& .MuiSnackbarContent-root': { backgroundColor: '#ff6b6b', color: 'white' } }); 我之前傻傻地直接在CSS文件里写!important折腾半天,后来发现是选择器优先级问题。MUI v5的样式现在作用在更深的层级,得用这种嵌套写法才能覆盖。 回复 点赞 2 2026-03-07 22:06 Good“泽勋 Lv1 Material-UI的Snackbar确实有点坑,我之前也被这个搞过。按照规范,Snackbar本身只是个容器,真正控制样式的应该是SnackbarContent组件。 你现在的写法有两个问题: 1. 直接写类名选择器在Material-UI里不太推荐,容易出问题 2. SnackbarContent的类名已经变了,不是MuiSnackbarContent-root了 试试这个写法,直接用sx属性: import { Snackbar, Alert } from '@mui/material'; // 用法 backgroundColor: '#ff6b6b', color: 'white' }}> 这是提示消息 或者如果你不用Alert组件的话: message="提示消息" ContentProps={{ sx: { bgcolor: '#ff6b6b', color: 'white' } }} /> 官方文档里其实写了这个用法,但藏得有点深。最新版Material-UI更推荐用Alert组件来包装内容,这样样式控制会更方便。 回复 点赞 2 2026-03-05 11:00 加载更多 相关推荐 1 回答 28 浏览 Material-UI 的 Snackbar 为什么点关闭没反应? 我用 Material-UI 写了个 Snackbar,但点了右上角的关闭按钮完全没反应,消息一直卡在页面上。 我已经绑定了 onClose 回调,也设置了 open 状态,但就是关不掉。试过把 se... 闲人子诺 组件 2026-03-24 11:21:20 2 回答 30 浏览 Material-UI 的 Snackbar 为啥不自动关闭? 我用 Material-UI 写了个 Snackbar,设置了 autoHideDuration={3000},但消息弹出来后根本不自动消失,得手动点关闭才行。 试过把 open 状态绑定到 useS... 树衡 组件 2026-03-29 15:46:12 1 回答 47 浏览 Material-UI 的 Button 为什么样式没生效? 我按照文档引入了 Material-UI 的 Button 组件,但按钮看起来还是原生样式,没有 Material Design 的效果,是不是哪里漏了? 我已经装了 @mui/material 和 ... 技术红芹 组件 2026-03-04 12:57:17 2 回答 80 浏览 为什么Material-UI按钮的CSS样式完全没生效? 我在用Material-UI的Button组件时,自己写的CSS样式完全没效果,按钮还是默认的蓝色。尝试过加!important也不行... 场景是想让按钮背景变成红色,文字白色。写了个类这样: .m... 青霞 组件 2026-02-06 08:41:31 1 回答 68 浏览 Material-UI 的 Button 组件为什么样式没生效? 我刚在 React 项目里装了 @mui/material,想用它的 Button 组件,但页面上显示的就是个普通按钮,没有任何 Material 风格的样式。是不是漏了什么? 我已经按文档引入了组件... UX一莹 框架 2026-03-26 19:38:19 1 回答 85 浏览 Material-UI按钮样式覆盖不了自定义的CSS如何解决? 我在用Vue和Material-UI做按钮组件时遇到问题,想给按钮加个悬停效果,但自定义的CSS样式完全没生效... 代码是这样的: 点击我 .custom-btn { background: #4C... IT人凡敬 组件 2026-01-28 11:07:26 1 回答 61 浏览 Material-UI的TextField输入框样式怎么自定义不生效? 我用Material-UI的TextField组件,想改一下输入框的边框颜色和高度,但加了sx或者styled好像都没反应,是不是被默认样式覆盖了? 试过在sx里写borderColor,也试过用st... 码农卫红 组件 2026-03-23 14:59:20 1 回答 129 浏览 Material-UI按钮自定义样式被默认样式覆盖怎么办? 在用Material-UI的Button组件时,我想给按钮加个圆角和渐变背景,但发现自定义的CSS类和内联样式都没生效。之前试过用sx prop和className,但样式总是被覆盖... 比如这个代... UX增芳 框架 2026-02-08 21:26:24 2 回答 130 浏览 Material-UI按钮自定义样式被覆盖怎么办? 在用Material-UI的Button组件时,给按钮加了自定义CSS类,但样式总是被覆盖。比如设置红色背景颜色完全没效果,这是为什么啊? 我尝试过这样写: import { Button } fro... Top丶柯佳 框架 2026-02-04 18:47:28 1 回答 25 浏览 Material-UI 的 Menu 为什么点击不消失? 我用 Material-UI 写了个菜单,但点完菜单项后下拉框不自动关闭,得点外面才行。 试过加 onClose 和手动控制 open 状态,但好像没触发。这是我的代码: const [anchorE... Zz议谣 组件 2026-03-25 16:48:24
方案1:用 sx prop 直接写在 Snackbar 上(注意不是Content!)
方案2:styled-components 写法(确保装了@mui/system)
我之前傻傻地直接在CSS文件里写!important折腾半天,后来发现是选择器优先级问题。MUI v5的样式现在作用在更深的层级,得用这种嵌套写法才能覆盖。
你现在的写法有两个问题:
1. 直接写类名选择器在Material-UI里不太推荐,容易出问题
2. SnackbarContent的类名已经变了,不是MuiSnackbarContent-root了
试试这个写法,直接用sx属性:
或者如果你不用Alert组件的话:
官方文档里其实写了这个用法,但藏得有点深。最新版Material-UI更推荐用Alert组件来包装内容,这样样式控制会更方便。