分隔线颜色变化 React Material Ui

Sir*_*rre 12 javascript frontend reactjs material-ui

我正在使用材料 ui 框架的分隔器组件,并且坚持颜色变化方面。对于这个框架中的大多数其他组件,我已经能够通过应用 useStyles() 方法来更改颜色,如下所示:

const useStyles = makeStyles(theme => ({
    textPadding: {
      paddingTop: 10,
      paddingBottom: 10,
      color:'white',
    },
}));
Run Code Online (Sandbox Code Playgroud)

但我无法使用相同的方法更改分隔线的颜色:

const useStyles = makeStyles(theme => ({
dividerColor: {
  backgroundColor: 'white',
},
}));
Run Code Online (Sandbox Code Playgroud)

我当然然后将它应用于组件:

<Divider classname={classes.dividerColor}></Divider>
Run Code Online (Sandbox Code Playgroud)

我查找了它的文档,但无法弄清楚我做错了什么。有人可以帮帮我吗?

bas*_*sse 16

要更改DividerMUI v5 中的线条颜色,您需要根据元素是否有子元素来调整方法。

对于空的Divider

<Divider sx={{ bgcolor: "secondary.light" }} />
Run Code Online (Sandbox Code Playgroud)

对于Divider有内容的:

<Divider
  sx={{
    "&::before, &::after": {
      borderColor: "secondary.light",
    },
  }}
>
  <Typography>Some Text</Typography>
</Divider>
Run Code Online (Sandbox Code Playgroud)

与 v5 的其他答案相比,请注意,您不需要将 SX 属性嵌套在下面&.MuiDivider-root,并且可以将主题属性与 SX 简写字符串一起使用(例如,secondary.light而不是(theme) => theme.palette.secondary.light.

  • 这对我有用。 (2认同)

小智 12

您可以使用
<Divider style={{ background: 'black' }} variant="middle" />


Blo*_*gic 11

使用classesAPI 更改divider颜色:

const useStyles = makeStyles((theme) => ({
  divider: {
      // Theme Color, or use css color in quote
      background: theme.palette.divider,
  },
}));


<Divider classes={{root: classes.divider}} />
Run Code Online (Sandbox Code Playgroud)

Divider API,了解Material UI 主题


小智 5

您必须使用类覆盖 CSS。

<Divider classes={{root: classes.dividerColor}} />
Run Code Online (Sandbox Code Playgroud)

请参阅有关 CSS 覆盖的 Material UI 文档:https : //material-ui.com/customization/components/#overriding-styles-with-classes


小智 3

您应该始终使用classNamewhile 使用material-ui样式,而不是典型的 javascript 样式声明,例如classname.

您也可以参考官方文档:https ://material-ui.com/styles/basics/#hook-api