【问题标题】:How to override the label styles in MUI's Chip如何覆盖 MUI 芯片中的标签样式
【发布时间】:2021-12-07 11:06:20
【问题描述】:

我正在将 React 与 MUI 的库一起使用。我使用的 MUI 组件是

芯片

在这个Chip 中,有一个标签属性,您可以选择在芯片中显示一个文本字段。如下所示。

我一直在尝试通过使用假定的 MUI 全局样式来覆盖 Chip 内的“头像”文本的样式,例如:

label: {
  '& .MuiChip-label': {
    fontWeight: 'bold',
    color: 'orange'
  }
},



<Chip
  avatar={<Avatar style={{
    width: '32px', height: '32px', padding: '5px', border: '1px solid', 
    backgroundColor: 'black'
  }}
  className={classes.label}
  src="/avatar/photo/pic.png" />}
  label="Avatar"
  variant="outlined" />

但这不是诀窍。有没有其他方法可以做到这一点?

【问题讨论】:

  • 您使用的是哪个版本的 MUI?
  • 看来我使用的是 v3.9.3

标签: javascript css reactjs bootstrap-4 material-ui


【解决方案1】:

V5

方法 1:使用 sx 属性设置嵌套组件的样式。查看全局 CSS 类名称列表here

<Chip
  label="Chip Filled"
  variant="outlined"
  sx={{
    "& .MuiChip-label": {
      color: "red"
    }
  }}
/>

方法 2: 传递样式标签:

<Chip
  label={<Box sx={{ color: "blue" }}>Chip Filled</Box>}
  variant="outlined"
/>

V4

您需要定位Chip 中的标签组件,您可以通过为classes.label 属性提供类名来实现:

<Chip
  classes={{
    label: classes.label
  }}

Chiplabel 属性是 ReactNode,因此您还可以为 Chip 提供自定义标签组件:

<Chip
  label={<div className={classes.label}>Deletable</div>}

【讨论】:

  • 嗯...这似乎没有起作用
  • 我刚刚看到您进行了编辑。我会试试@NearHuscarl
  • @KennyQuach 这两种方法都适用于我的代码沙箱,你能看看吗?
  • @KennyQuach 实际上它不适合您,因为您使用的是 v3!
  • 哈哈!我已经过时了!
猜你喜欢
  • 2023-04-08
  • 2019-03-04
  • 2019-09-03
  • 1970-01-01
  • 2020-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-02
  • 1970-01-01
相关资源
最近更新 更多