导航栏样式活动下划线
Navbar styling active underline
我有一个导航栏,当用户将鼠标悬停在 link 上时,它会为下划线设置动画。我正在尝试添加 css 以便活动导航栏具有永久下划线。
我的代码
<Navbar className="navbar-expand-sm navbar-toggleable-sm" light>
<Container id="ContainerGrnH">
<NavbarToggler onClick={this.toggleNavbar} className="mr-2" />
<Collapse className="d-sm-inline-flex flex-sm-row-reverse" isOpen={!this.state.collapsed} navbar>
<div class="topnav">
<ul className="navbar-nav flex-grow">
<NavItem>
<NavLink tag={Link} className="text-white" to="/home">HOME <div className="underline"></div></NavLink>
</NavItem>
<NavItem>
<NavLink tag={Link} className="text-white" to="/people-profiles">PEOPLE PROFILES<div className="underline"></div></NavLink>
</NavItem>
<NavItem>
<NavLink tag={Link} className="text-white" to="/Role-types">ROLE TYPES<div className="underline"></div></NavLink>
</NavItem>
<NavItem>
<NavLink tag={Link} className="text-white" to="/support">SUPPORT<div className="underline"></div></NavLink>
</NavItem>
<NavItem>
<NavLink tag={Link} className="text-white" id="contactushead" to="/contact-us">CONTACT US<div className="underline"></div></NavLink>
</NavItem>
</ul>
</div>
</Collapse>
</Container>
</Navbar>
.topnav ul a {
color: #ffffff;
text-decoration: none;
padding: 10px;
transition: color 0.5s;
}
.topnav ul li .underline {
height: 3px;
background-color: transparent;
width: 0%;
transition: width 0.2s, background-color 0.5s;
margin: 0 auto;
}
.topnav ul li.active-link .underline {
width: 100%;
background-color: white;
}
.topnav ul li:hover .underline {
background-color: white;
width: 100%;
}
.topnav ul li:hover a {
}
.topnav ul li:active a {
transition: none;
color: rgba(255,255,255,0.76);
}
.topnav ul li:active .underline {
transition: none;
background-color: rgba(255,255,255,0.76);
}
这很可能是一个小错误,但我已经玩了一段时间,似乎找不到很多解决方案。
正如您在图片中看到的,由于选择了家,家这个词应该带有下划线。
你在使用 react-router-dom 的 NavLink 吗?
如果是这样,实际上有一个 activeClassName 属性可以用来识别当前正在访问的路由。
<NavLink tag={Link} className="text-white" exact activeClassName="underline" to="/people-profiles">PEOPLE PROFILES</NavLink>
在你的 css
.underline {
border-bottom-width: 2px;
}
不要忘记在 NavLink 的属性中添加 exact 以与路线正确匹配。
您可能想将 activeClassName="underline"
添加到您的 NavLink
。并且知道您不在 CSS 中。在@crmacarse 的回答中查看如何操作。
我有一个导航栏,当用户将鼠标悬停在 link 上时,它会为下划线设置动画。我正在尝试添加 css 以便活动导航栏具有永久下划线。
我的代码
<Navbar className="navbar-expand-sm navbar-toggleable-sm" light>
<Container id="ContainerGrnH">
<NavbarToggler onClick={this.toggleNavbar} className="mr-2" />
<Collapse className="d-sm-inline-flex flex-sm-row-reverse" isOpen={!this.state.collapsed} navbar>
<div class="topnav">
<ul className="navbar-nav flex-grow">
<NavItem>
<NavLink tag={Link} className="text-white" to="/home">HOME <div className="underline"></div></NavLink>
</NavItem>
<NavItem>
<NavLink tag={Link} className="text-white" to="/people-profiles">PEOPLE PROFILES<div className="underline"></div></NavLink>
</NavItem>
<NavItem>
<NavLink tag={Link} className="text-white" to="/Role-types">ROLE TYPES<div className="underline"></div></NavLink>
</NavItem>
<NavItem>
<NavLink tag={Link} className="text-white" to="/support">SUPPORT<div className="underline"></div></NavLink>
</NavItem>
<NavItem>
<NavLink tag={Link} className="text-white" id="contactushead" to="/contact-us">CONTACT US<div className="underline"></div></NavLink>
</NavItem>
</ul>
</div>
</Collapse>
</Container>
</Navbar>
.topnav ul a {
color: #ffffff;
text-decoration: none;
padding: 10px;
transition: color 0.5s;
}
.topnav ul li .underline {
height: 3px;
background-color: transparent;
width: 0%;
transition: width 0.2s, background-color 0.5s;
margin: 0 auto;
}
.topnav ul li.active-link .underline {
width: 100%;
background-color: white;
}
.topnav ul li:hover .underline {
background-color: white;
width: 100%;
}
.topnav ul li:hover a {
}
.topnav ul li:active a {
transition: none;
color: rgba(255,255,255,0.76);
}
.topnav ul li:active .underline {
transition: none;
background-color: rgba(255,255,255,0.76);
}
这很可能是一个小错误,但我已经玩了一段时间,似乎找不到很多解决方案。
正如您在图片中看到的,由于选择了家,家这个词应该带有下划线。
你在使用 react-router-dom 的 NavLink 吗?
如果是这样,实际上有一个 activeClassName 属性可以用来识别当前正在访问的路由。
<NavLink tag={Link} className="text-white" exact activeClassName="underline" to="/people-profiles">PEOPLE PROFILES</NavLink>
在你的 css
.underline {
border-bottom-width: 2px;
}
不要忘记在 NavLink 的属性中添加 exact 以与路线正确匹配。
您可能想将 activeClassName="underline"
添加到您的 NavLink
。并且知道您不在 CSS 中。在@crmacarse 的回答中查看如何操作。