【问题标题】:Styling React Bootstrap Component in Active State在活动状态下设置 React Bootstrap 组件的样式
【发布时间】:2017-08-08 06:48:43
【问题描述】:

我正在尝试设置 React Bootstrap 导航栏的样式。我能够成功地设置非活动选项卡的样式,但是,我似乎无法到达活动选项卡。 我的 style live 是一个单独的 .scss 文件。这是相关的sn-p:

.navitem {
  a {
    font-size: 12px;
    color: #000;
    background-color: #e7e7e7;
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-bottom-color: #357ebd;
    border-bottom-style: solid;
    border-radius: 0px !important;
    display: inline-block;
    border-bottom-width: 2px;
  }
  flex: 1;
}

.navitem.active {
  background-color: #777777;
}

当一个活跃的 Bootstrap 组件被创建时,它的 HTML 看起来像这样:

<li role="presentation" class="Preview-navitem--19fA7 active"><a role="button" href="#">Preview</a></li>

这是 react render() 方法中的 HTML:

<Nav
            className={styles.navbar}
            bsStyle="pills"
            activeKey={this.state.value}
            onSelect={this.handleSelect}
          >
            <NavItem className={styles.navitem} eventKey="1">Preview</NavItem>
            {navItem}
</Nav>

所以,基本上,我可以设置 .navitem 的样式,但不能设置 .active 的样式。 知道我该怎么做吗?

【问题讨论】:

  • 您使用的是 CSS 模块还是类似的东西?看起来您的 .navitem 正在更改为 Preview-navitem--19fA7,这意味着您的 .navitem.active 也正在更改,这就是它不匹配的原因。
  • @JamesGanong,这就是引导程序所做的。 .navitem 确实被接收了,但我似乎无法让它看到活动状态。
  • 您是否将navitem 类添加到您的NavItem 组件中?我在 react-bootstrap 代码中找不到添加该类的任何地方。我相当确定正在发生的事情是您的 css 处理正在修改您的类名,但是活动的类名正在通过 react-bootstrap 添加到您的li,它位于您的处理器之外。所以active 类被添加为active,但是你的css 文件有一个不同的.navitem.active 样式名称。您能在处理后的 css 文件中找到 .navitem.active 被更改为的内容吗?
  • @JamesGanong 当我在浏览器中检查代码时,.navitem.active 没有出现,所以我认为它没有得到处理。或者确实如此,但不适用于活动元素。我已经编辑了我的帖子以显示我在 React 代码中呈现的内容。
  • 你能在 CSS 文件中查看.navitem.active 是什么吗?

标签: reactjs sass react-bootstrap


【解决方案1】:

假设这是基于粘贴代码的 CSS 模块,解决方案是使用全局选择器。 CSS Modules 在主 README 页面的Exceptions 下简要提到了这一点。但是,他们的 webpack demo 有一个 global selector example,您可以克隆和玩弄。

简而言之,你应该改变:

.navitem.active {
  background-color: #777777;
}

到:

.navitem:global(.active) {
  background-color: #777777;
}

为了让它被 Webpack 正确处理。这应该就是所需要的!

【讨论】:

  • 太棒了。非常感谢您的帮助!
  • 对于 2020 年阅读此书的任何人,这对我有用,但只有在添加 !important
猜你喜欢
  • 1970-01-01
  • 2018-05-01
  • 2021-11-04
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 2020-03-01
相关资源
最近更新 更多