如何删除未选择路线的 NavLink 样式

Posted

技术标签:

【中文标题】如何删除未选择路线的 NavLink 样式【英文标题】:How to remove NavLink styling for unselected Routes 【发布时间】:2022-01-08 09:24:17 【问题描述】:

我想知道如何恢复到下面屏幕截图中标记的 NavLink 的默认样式。 color 应该是白色的并且没有下划线。您会在屏幕截图下方找到我的代码: Home 是当前选择的默认路径。其上的 activeClass 属性正在正常工作。

代码:

const NavBar = () => 
    return(
        <div className="navBar">
            <div className="logo">LOGO</div>
            <div className="navOptions">
                <ul>
                    <li>
                        <NavLink exact activeClassName="activeClass" to="/">Home</NavLink>
                    </li>
                    <li>
                        <NavLink exact activeClassName="activeClass" to="/advanceFilter">Advanced Search</NavLink>
                    </li>
                    <li>
                        <NavLink exact activeClassName="activeClass" to="viewAll">View All</NavLink>
                    </li>
                    <li>Logout</li>
                </ul>
            </div>
        </div>
    );


export default NavBar;

CSS:

.navBar 
    display: flex;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    color: white;
    font-weight: bold;


.logo 
    display: flex;
    flex: 1;
    align-items: center;
    padding-left: 50px;


.navOptions 
    display: flex;
    justify-content: flex-end;
    flex: 1;
    height: 100%;


//The li items don't have the color and text-decoration properties on them
li 
    display: inline;
    margin-right: 20px;
    cursor: pointer;
    height: 100%;
    text-decoration: none;
    color: white;


li:hover 
    background-color: gray;


ul 
    margin-right: 40px;
    list-style-type: none;


.activeClass 
    text-decoration: none;
    color: purple;

【问题讨论】:

NavLink 元素在 activeClassName 属性旁边接受 className 属性,并编译为 a 标记 - 您可以将样式添加到 a 元素或添加自定义类通过className 【参考方案1】:

NavLink 组件呈现一个锚点 &lt;a /&gt; 标记,更新 CSS 中的选择器以同时定位作为 li 元素子级的锚点标记。

li, li a 
  display: inline;
  margin-right: 20px;
  cursor: pointer;
  height: 100%;
  text-decoration: none;
  color: white;

或者,您也可以指定一个“navlink”类并在那里应用默认的非活动 CSS 样式。

【讨论】:

以上是关于如何删除未选择路线的 NavLink 样式的主要内容,如果未能解决你的问题,请参考以下文章

如何删除选择输入的默认镀铬样式?

在 UITableView 单元格滑动中选择“删除”,但未调用“提交编辑样式”

删除未命中的路线

如何在 typescript 环境中的 material-ui 按钮内渲染 react-router-dom NavLink 的 activeClassName 样式?

如何从 Chrome 中的文件输入中删除“未选择文件”工具提示?

如何删除 jQuery Mobile 样式?