如何覆盖@media css以获取材料-ui反应组件

Gle*_*enn 8 css reactjs material-ui

这个问题中,我问过如何覆盖material-ui组件的css属性,并提供了一个很好的例子.但是,在尝试设置工具栏组件的高度时,我发现由于过度拱形的@media规范,我无法覆盖css.以下MuiTheme规范是我的方法:

const theme = createMuiTheme({
    overrides: {
        MuiToolbar: {
            regular: {
               height: "32px",
               minHeight: "32px"
        }
    },
  }
});
Run Code Online (Sandbox Code Playgroud)

以下是css被覆盖的视觉效果:

在此输入图像描述

如果我介绍一个hack并添加!重要的minHeight它的工作原理.显示此信息的代码框位于:https://codesandbox.io/s/4xmr2j2ny9

使用MuiTheme覆盖@media规范的正确方法是什么?

Vij*_*non 9

您必须像下面一样添加它.媒体查询语句应用单引号括起来.

 MuiToolbar: {
      regular: {
        backgroundColor: "#ffff00",
        color: "#000000",
        height: "32px",
        minHeight: "32px",
        '@media (min-width: 600px)': {
          minHeight: "48px"
        }
      },
Run Code Online (Sandbox Code Playgroud)

请找到codesandox - https://codesandbox.io/s/q8joyrrrwj

  • 这个解决方案的坏处是我们需要知道我们需要覆盖哪个媒体查询。如果组件的内部代码发生变化,主题覆盖将失去其效果。这可以通过类似 `[defaultTheme.breakpoints.up('md')]: {` insted of `'@media (min-width: 600px)': {` 来解决 (2认同)