【问题标题】:How to override -btn-primary class in React bootstrap Styled Component如何在 React 引导样式组件中覆盖 -btn-primary 类
【发布时间】:2020-05-08 05:40:21
【问题描述】:

我是 CSS 的新手,我使用 react bootstrap 和 react,但是我正在使用 react bootstrap 和 styled 组件来设置按钮的样式。该按钮工作正常,但是当我右键单击或单击并按住按钮颜色变为蓝色时。我怎样才能避免它?我还可以看到 -btn-primary 被附加到我的样式按钮上。我知道我可以使用 !important 来避免这个问题,但我绝对不想使用“ïmportant” 我的代码

const AppPrimaryButtonStyle = styled(Button)`
  display: contents;
  .styled-primary-button {
    font: ${props => props.theme.font.family.primary};
    color: ${props => props.theme.color.secondaryText};
    background-color: ${props => props.theme.color.primary};
    border-color: ${props => props.theme.color.primary};
  }
`;
const AppPrimaryButton = ({ children, onClick, block, href }: AppPrimaryButtonProps) => (
  <AppPrimaryButtonStyle>
    <Button className={`styled-primary-button`} onClick={onClick} block={block} href={href}>
      {children}
    </Button>
  </AppPrimaryButtonStyle>
);

export default AppPrimaryButton;

html 属性

<button type="button" class="styled-primary-button btn-primary btn btn-primary">Click Me</button>

【问题讨论】:

  • 你在使用 react-bootstrap 和 bootstrap npm 吗????这里

标签: css reactjs bootstrap-4 react-bootstrap styled-components


【解决方案1】:

CSS 的工作方式是在获得类后立即实现样式。这样,您最后传递的class 将显示在屏幕上,并且具有更多偏好,因为它是最后应用的。你可以试试:

const AppPrimaryButton = ({ children, className, onClick, block, href }: AppPrimaryButtonProps) => (
  <AppPrimaryButtonStyle>
    <Button className={`${className} styled-primary-button`} onClick={onClick} block={block} href={href}>
      {children}
    </Button>
  </AppPrimaryButtonStyle>
);

我认为会产生这样的 HTML:

<button type="button" class="btn btn-primary styled-primary-button">Click Me</button>

希望这对你有用。

【讨论】:

  • 这里的问题是'btn btn-primary'是在编译时而不是之前添加的。
猜你喜欢
  • 1970-01-01
  • 2018-01-07
  • 2021-02-20
  • 2019-02-23
  • 2020-07-26
  • 1970-01-01
  • 2014-11-11
  • 1970-01-01
  • 2021-04-30
相关资源
最近更新 更多