【发布时间】: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