css有覆盖顺序的,this里的a被#nav li a覆盖了。 提高一下this样式里的颜色的优先级就行,如下。
a.this { background: url(nav_a_bg.png) center no-repeat; color: #329a07 !important }
因为上面#nav li a比a.this更具体,所以优先
a.this{
color:#329a07;
background:url(nav_a_bg.png) center no-repeat;
}
改成
#nav li a.this {
color:#329a07;
background:url(nav_a_bg.png) center no-repeat;
}
另外,不是很建议用this之类的关键字做样式的名称,或者像new,object之类的,虽然我也不知道有没有什么潜在的问题。。 ,有高手在的话希望帮忙解答一下。
比如你可以用a.current。
咦,我怎么记得class的优先级比ID要高= =……
另外,不是很建议用this之类的关键字做样式的名称,或者像new,object之类的,虽然我也不知道有没有什么潜在的问题。。 ,有高手在的话希望帮忙解答一下。
比如你可以用a.current。
CSS优先级的计算规则如下:
* 页面中定义的样式,加1,0,0,0
* 每个ID选择符(如 #id),加0,1,0,0
* 每个Class选择符(如 .class)、每个属性选择符(如 [attribute=])、每个伪类(如 :hover)加0,0,1,0
* 每个元素选择符(如p)或伪元素选择符(如 :firstchild)等,加0,0,0,1
然后,将这四个数字分别累加,就得到每个CSS定义的优先级的值,
然后从左到右逐位比较大小,数字大的CSS样式的优先级就高。