2012-09-14 26 views
1

我在CSS中的“活动”状态有一点问题。我有一个<ul>其中有4个列表,我想给这些链接一个不同的background-color(并保持这种方式!),如果他们被点击。问题是,这是不行的......点击活动状态不起作用(列表)

这是我的HTML:

<nav id="quick-index-nav"> 
<ul id="quick-index-list" class="pills slim muted"> 
<li class="active"> 
<a id="qindex-popular" title="..." target="right" href="right.php">everything</a> 
</li> 
<li> 
<a id="qindex-today" title="..." target="right" href="right.php?t=tod">today</a> 
</li> 
<li class="yesterday"> 
<a id="qindex-yesterday" title="..." target="right" href="right.php?t=yes">tomorrow</a> 
</li> 
<li> 
<a id="qindex-day" title="...." target="right" href="right.php?t=mix">never</a> 
</li> 
</ul> 
</nav> 

,这是我的CSS文件:

#quick-index-nav{margin-bottom:10px; margin-left: -50px;} 
#quick-index-list{margin-bottom:0;*zoom:1;border:0px ridge #d9d9d9} 
#quick-index-list:before,#quick-index-list:after{display:table;content:""} 
#quick-index-list:after{clear:both} 
#quick-index-list li{display:inline-block;float:left;width:25%;margin:0;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-right:0px ridge #d9d9d9} 
#quick-index-list li:nth-child(4n){border-right:0px} 
#quick-index-list li:nth-child(n+5){border-top:0px ridge #d9d9d9} 
#quick-index-list li>a{padding:0;display:block;font-size:1.0em;text-align:center; font-family: Calibri;} 

.pills>li{display:inline-block;margin-bottom:5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;border:1px solid #d9d9d9} 
.pills>li>a{padding:6px 10px;cursor:pointer;display:inline-block} 
.pills>li>a:hover{text-decoration:none} 
.pills>li:hover{background-color:#d9d9d9;text-decoration:none} 
.pills>li.active{background-color:#456695;border-color:#456695} 
.pills>li.active>a{color:#fff} 
.pills.slim>li>a{padding:3px 5px;font-size:.9em} 
.pills.muted>li>a{color:gray} 
.pills.muted>li.active>a{color:#fff}; 
.muted { 
    color: gray; 
} 

有什么不对呢?

PS:这里是一个演示http://jsfiddle.net/1BJK903/fxTQL/5/

+0

您尚未为'a:active'定义任何样式。你只有两个使用'background-color'的规则,并且两者都可见。您希望哪个规则对点击链接有效? ([jsbin demo](http://jsbin.com/esezik/1/edit)) – lanzz

+0

如何添加'.active'class? JavaScript的?你可以发布吗? – albertedevigo

+0

我不使用Javascript或jQuery(如果有的话,这将是受欢迎的),我也不使用伪元素,所以我想这是什么错误。我怎么做呢? – 1BJK903

回答

1

据我了解,你想使用active伪类,应该比你有pills>li:active>a。另外,我知道好像它是适用于只链接(从来没有使用过它,这可能是错误的),所以可能你需要改变你的类是这样的:pills>li>a:active

更新

经过一些测试出现这pills>li:active>a在FF,Chrome和IE8 +的作品,并在IE7中不起作用

要做你需要的,你可以使用此代码在您的网页上启用jQuery。第二个脚本标签包含将改变类的代码。

<script type="text/javascript" scr="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    $(function(){ 
    $(".pills li").click(function(){ 
     $(".pills li").removeClass("active"); 
     $(this).addClass("active"); 
    })​ 
}) 
</script> 
+0

嗨,那里,谢谢你的回答... 我想获得点击列表的背景颜色变化。你说的东西没有用。我早些时候尝试过。 – 1BJK903

+0

好...看到这[jsFiddle](http://jsfiddle.net/2XYtY/2/)。它适用于我在铬 –

+0

呃。如果你希望它在点击后保持这种状态 - 这将不起作用。而CSS本身并没有这样的东西。 :只有当您按住鼠标按钮时才会应用活动。 –