【问题标题】:Material UI - Wipe away all stylesMaterial UI - 清除所有样式
【发布时间】:2017-11-14 09:47:32
【问题描述】:

有什么方法可以完全覆盖所有 material-ui 样式并让组件遵循您自己的完全自定义样式指南?本质上,擦除所有material-ui样式并从它们的html骨架开始?使用 mui 或 themeProvider 为 material-ui 组件创建新主题还不够健壮。

我查看了@material-ui 源代码,它们有一个styles.root 变量。有没有办法访问该对象并使其更健壮?我愿意接受任何想法和建议。


到目前为止没有奏效的是:

  • 主题管理器
  • mui主题
  • 内联样式(不能访问组件的子元素)
  • 类样式(您必须将 !important 与许多 css 属性一起使用,我们正在努力避免这种情况)

【问题讨论】:

  • 如果抹去所有样式,材质外观会留下什么?听起来你最好创建自定义组件。
  • @lux 所有material-ui交互、文档和支持/社区都非常有用:我们只希望组件看起来非常不同并保持其功能。但你是对的,我们也讨论过这个问题,而且看起来越来越有可能这是我们必须采取的路线。在我们建立一个完全定制的图书馆之前,我只是确保没有任何替代解决方案
  • 知道了,我只能通过 ThemeManager 覆盖 muiTheme,但似乎还没有完全删除样式本身的情况。你也可以在他们的 github 问题页面上发布这个。
  • 感谢@lux!我会发帖看看他们怎么说
  • 听起来这是一个足够广泛的更改,您可能希望分叉源代码并将默认样式的 CSS/JS 代码替换为空样式。例如对于Button 组件,只需将样式对象替换为所有键都相同但值只是空对象的对象{}:github.com/mui-org/material-ui/blob/next/packages/material-ui/…

标签: css reactjs styling material-ui


【解决方案1】:

本质上,擦除所有material-ui样式并从它们的html骨架开始

Material UI 不使用单独的 CSS。所有的 CSS 都是由 JS 驱动的,所以你唯一的选择是 ThemeManager 提供的。

【讨论】:

  • 是的,这就是我所担心的,唯一可用的更改将在 ThemeManager 的约束范围内,谢谢@basarat!
猜你喜欢
  • 2020-04-21
  • 2016-07-05
  • 2021-10-05
  • 2021-06-30
  • 2020-05-27
  • 2020-11-18
  • 2020-01-30
  • 2019-03-07
  • 2018-09-10
相关资源
最近更新 更多