背景正常和背景在css中有效

时间:2013-10-12 18:49:49

标签: html css html5

我在CSS中有以下代码:

#nav li a:active{
 background-color:brown;
}

#nav li a.index{background:purple;}
#nav li a.advertiser{background:red;}
#nav li a.publisher{background:green;}
#nav li a.new{background:blue;}
#nav li a.status{background:orange;}

#nav li a:hover {
 border-bottom:5px solid brown;
}

和HTML

<ul id="nav">
 <li><a class="index"....
 <li><a class="advertiser"...
 <li><a class="publisher"...
 <li><a class="new"....
 <li><a class="status".....
</ul>

问题是,当我点击它时,它会变成棕色但不会保持棕色。 我错误的地方无法实现。

2 个答案:

答案 0 :(得分:2)

:活动状态仅在用户点击时才有效;单击完成后,锚点或按钮的活动状态不会保留。

如果要在单击后将锚点保持为棕色,则可以在用户单击锚点时使用jquery推送特定类:

$('#nav a').on('click', function(e){
    e.preventDefault(); //?

    $('#nav a.active').removeClass('active');
    $(this).addClass('active');
})

答案 1 :(得分:1)

:active将在按下按钮或文本时给出亮点,您需要编写jquery来实现此目的。试试这个例子:

<ul>    
<li><a class="black classname" id="click">Home</a></li>
<li><a class="black" id="click">about</a></li>
<li><a class="black" id="click">services</a></li>
</ul>

CSS

.black{color:black}
.classname{color:red}

Jquery的

$(document).ready(function(){

    $("a#click").click(function(){
        $("a").removeClass('classname')
        $(this).addClass('classname')
    });

});

演示http://jsfiddle.net/XFYjz/