有人可以帮我处理我的代码吗?我想把我选择的当前链接的不同风格。超链接不会转到不同的页面,它们都指向当前页面。
这是我的代码:
HTML
<nav id="nav">
<ul>
<li class="current"><a href="#top" id="top-link" ><span>Home</span></a></li>
<li><a href="#portfolio" id="portfolio-link"><span>Portfolio</span></a></li>
<li><a href="#about" id="about-link"><span>About</span></a></li>
</ul>
</nav>
CSS
#nav ul li a:hover
{
color:#FFF;
background-color:#333;
}
#nav ul li a:active
{
color:#FFF;
background-color:#333;
}
答案 0 :(得分:0)
您不能仅使用CSS执行此操作。您将需要一些Javascript来实现。 (显然你可以,看看编辑)
即使您的问题没有标记jQuery和/或Javascript,这里有一个如何使用jQuery执行此操作的示例:
演示:http://jsfiddle.net/abhitalks/yW3Yt/1/
相关的jQuery代码:
$("a").on("click", function() { // bind click event on all anchors
$("li").removeClass("current"); // remove current class from all list-items
$(this).parent().addClass("current"); // add current class to the parent of clicked anchor
});
这个想法是使用带有相应标签的隐藏单选按钮。收音机input
仍在锚点之外(因为输入不是锚点的有效内容),而标签则由锚点包裹。
演示2:http://jsfiddle.net/abhitalks/yW3Yt/4/
相关HTML:
<ul>
<li>
<input type="radio" name="opt" id="opt1"/>
<a href="#top" id="top-link"><label for="opt1">Home</label></a>
...
相关CSS:
input[name="opt"] {
display: none;
}
input[name="opt"]:checked + a {
background-color: yellow;
}
答案 1 :(得分:0)
您可以使用jquery代码更改.current class
点击次数。
var links = $('#nav li');
links.click(function() {
$(this).parent().find(".current").removeClass('current');
$(this).addClass('current');
});
检查 DEMO 。
答案 2 :(得分:0)
首先,这是 Fiddle Demo
我去了:
$('li').on('click', function(){
$(this).addClass('current')
.siblings().removeClass('current');
});