问题
I made a header using bootstrap 4 but I want that when I click on any link, link change its color and remains selected.
<nav>
<div class="collapse navbar-collapse justify-content-end" id="nav-content">
<ul class="navbar-nav" id="nav">
<li class="nav-item">
<a class="nav-link" routerLink="">About</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/experience">Experience</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/skills">Skills</a>
</li>
<ul>
<div>
<nav>
I don't know what to do next, I don't want to use jquery.
Please help me.
回答1:
You can use routerLinkActive
.html file
<nav>
<div class="collapse navbar-collapse justify-content-end" id="nav-content">
<ul class="navbar-nav" id="nav">
<li class="nav-item">
<a class="nav-link" routerLink="" routerLinkActive="class-name" routerLinkActiveOptions="{exact:true}">About</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/experience" routerLinkActive="class-name" routerLinkActiveOptions="{exact:true}">Experience</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/skills" routerLinkActive="class-name" routerLinkActiveOptions="{exact:true}">Skills</a>
</li>
<ul>
<div>
<nav>
.css/.scss file
.class-name{
color:red;
...
}
回答2:
You should use RouterLinkActive
<a class="nav-link" routerLink="/experience"
routerLinkActive="YourClass" routerLinkActiveOptions="{exact:true}">
Experience
</a>
routerLinkActive
- Assign your class.routerLinkActiveOptions="{exact:true}"
- add the class when match the exact link
来源:https://stackoverflow.com/questions/51919031/change-color-of-selected-link-in-angular-4