我尝试更改一个列表项的背景颜色,而另一个列表项的另一个背景颜色.
这是我有的:
<style type="text/css"> ul.nav li { display:inline; padding:1em; margin:1em; background-color:blue; } .selected { background-color:red; } </style> <ul class="nav"> <li>Category 1</li> <li>Category 2</li> <li class="selected">Category 3</li> <li>Category 4</li> </ul>
所产生的是具有蓝色背景的所有列表项(从“nav”类),就好像没有“selected”类.但是,当我从“nav”类中取出背景颜色时,我将获得带有“selected”类的列表项的红色背景.
我想为页面上的其他项目(即其他列表项,div等)使用“所选”类.
我该如何解决这个问题?
先谢谢你.
解决方法
这是一个
selector specificity的问题(选择器.selected比ul.nav li更具体)
要解决,在最初的规则中使用与原文一样多的特异性:
ul.nav li { background-color:blue; } ul.nav li.selected { background-color:red; }
你也可以考虑修改ul,除非有其他的.navs.所以:
.nav li { background-color:blue; } .nav li.selected { background-color:red; }
这更干净,打字少,位少.