【发布时间】:2021-10-17 08:24:04
【问题描述】:
我的active class 的 CSS 似乎没有应用到渲染的组件上,即使实际应用了其余的 CSS。 CSS 使用 CSS 模块应用。由于 react-router-dom 包的 NavLink 组件将该类设置为活动类,因此我在 CSS 文件中选择了活动类,但由于某种原因,除了特定选择之外,所有内容都应用于呈现的 HTML。
React 组件的render()方法:
render () {
return (
<Fragment>
<nav className={CSSModule.Nav}>
<ul>
<li><NavLink to="/" exact>Home</NavLink></li>
<li><NavLink to={{
pathname: "/new-post",
hash: "#submit",
search: "?quick-submit"
}}>New Post</NavLink></li>
</ul>
</nav>
<Route
path={["/", "/home"]}
exact
component={Posts} />
<Route
path="/new-post"
exact
component={NewPost} />
</Fragment>
);
}
CSS 代码:
.Nav {
box-sizing: border-box;
padding: 20px;
}
.Nav ul {
list-style: none;
display: flex;
justify-content: space-evenly;
background-color: burlywood;
padding: 10px;
}
.Nav ul a {
color: black;
text-decoration: none;
}
.Nav ul a:active {
color: white;
}
.Nav ul a:hover,
.Nav ul a.active {
border-bottom: 1px solid black;
}
Here 是一个codesandbox示例。
经过一些更详细的研究,似乎 CSS 模块以某种方式阻止了活动类的样式被应用。
【问题讨论】:
-
能否分享您在代码沙箱中的代码示例?
-
@MajidM。现在加了一个。
标签: javascript css reactjs react-router react-router-dom