【问题标题】:Apply radiobutton color using styled-components in Material UI?在 Material UI 中使用样式组件应用单选按钮颜色?
【发布时间】:2020-01-19 20:28:59
【问题描述】:

在 Material UI 文档中,他们提供了示例代码来展示如何更改单选按钮的颜色。

const GreenRadio = withStyles({
  root: {
    color: green[400],
    '&$checked': {
      color: green[600],
    },
  },
  checked: {},
})(props => <Radio color="default" {...props} />);

我想用styled-component 复制它,而不是const StyledRadio = styled(Radio),但我不太熟悉与符号和美元符号等语法 - 我该怎么做?

【问题讨论】:

    标签: reactjs material-ui styled-components


    【解决方案1】:

    当使用带有 MUI 的样式组件时,CSS 将应用于组件的 root 类。如果您需要应用更具体的样式,则需要定位相关类。在这种情况下,您需要定位 .Mui-checked 类:

    const StyledRadio = styled(Radio)`
      color: ${green[400]};
      &.Mui-checked {
        color: ${green[600]};
      }
    `;
    

    MUI 文档非常棒,因为它们列出了每个组件的 CSS 类名。如果您访问API docs for the Radio component,您将看到那里列出的.Mui-checked 类(在“全局样式”列下)。

    这是代码沙箱中的一个工作示例:https://codesandbox.io/embed/styled-components-9pewl

    【讨论】:

      【解决方案2】:

      以下是适当的样式组件语法:

      const GreenRadio = styled(Radio)`
        color: ${green[400]};
        &.Mui-checked {
          color: ${green[600]};
        }
      `;
      

      相关文档:https://material-ui.com/customization/components/#pseudo-classes

      【讨论】:

        猜你喜欢
        • 2021-06-14
        • 2021-08-01
        • 1970-01-01
        • 2017-12-30
        • 1970-01-01
        • 2020-04-15
        • 2020-06-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多