以下是plunker - http://plnkr.co/edit/WZ6cqCcXaLuOCXnZdCa6?p=preview
是否有CSS方式,以便当我点击One
或Two
时,class="active"
或One
变为Two
并从{{Home
移除1}}?
答案 0 :(得分:1)
你需要以某种方式编辑html,css没有能力改变元素类。您可以在js上为js编写一个小函数来执行此操作,并从旧菜单项中删除该类并将其添加到新选择的菜单项中。
像这样: http://plnkr.co/edit/6B5v2KrZonuI33dJySS6?p=preview答案 1 :(得分:1)
您可以仅使用CSS突出显示每个链接,但不能使用类突出显示。而是使用:target
伪类:http://codepen.io/pageaffairs/pen/kqoma
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style media="all">
ul, li, div {margin: 0; padding: 0;}
ul {
list-style: none;
overflow: hidden;
padding: 10px;
}
li {
float: left;
margin: 0 20px 0 0;
}
li a {
display: block;
padding: 10px 20px;
text-decoration: none;
color: #08c;
border-radius: 20px;
}
li a:hover, li a:target {
background: #08c;
color: white;
}
</style>
</head>
<body>
<h1>Hello <code>:target</code>!</h1>
<div class="header">
<ul class="nav nav-pills">
<li class="active">
<a href="#home" id="home">Home</a>
</li>
<li>
<a href="#one" id="one">One</a>
</li>
<li>
<a href="#two" id="two">Two</a>
</li>
</ul>
</div>
</body>
</html>
答案 2 :(得分:1)
你可以使用jQuery,遵循以下格式:
switch (window.location.pathname) {
case '/THE_URL_HERE':
$('.nav-home').addClass('active');
break;
case '//THE_URL_HERE':
$('.nav-one').addClass('active');
break;
case '//THE_URL_HERE':
$('.nav-two').addClass('active');
break;
}
并在HTML中添加类:
<h1>Hello Plunker!</h1>
<div class="header">
<ul class="nav nav-pills">
<li class="nav-home">
<a href="#">Home</a>
</li>
<li class="nav-one"><a href="#">One</a></li>
<li class="nav-two"><a href="#">Two</a></li>
</ul>
</div>
答案 3 :(得分:0)
不使用CSS。行为特征(例如链接和DOM的修改)超出了CSS的范围。
但是,您可以构建链接以修改URL的查询字符串(例如?item = 1),并使用生成的GET值在导航上设置类。
或者使用javascript。
答案 4 :(得分:0)
使用:target,如果不使用javascript制作菜单,则更加灵活