风格奇怪地层叠着

时间:2013-07-18 19:46:02

标签: css css-selectors

我有一个非常奇怪的级联内联样式表。

我有一个用<ul>制作的菜单,我希望这样做,以便当用户在页面上时,<li>上当前页面链接的背景颜色为绿色。我是通过使用background-color: #288E3A;创建ID来完成此操作的,但是尽管将其放在菜单的ID之后,我无法将当前<li>变为绿色。我能让它工作的唯一方法是使用!important,但我无法使用该解决方案。 -shudder -

我有一种感觉,这可能是我很遗憾的事情。有人能解释我哪里出错吗?

#menu ul {
  padding: 15px;
  list-style-type: none;
}
#menu ul li {
  background-color: #363636;
  margin: 0px 0px 15px;
  line-height: 50px;
  padding: 0px 5px 0px 5px;
}
#current_page ul li {
  background: #288E3A /*!important*/;
}
<div id="menu">
  <p>MAIN MENU</p>
  <div id="button_container">
    <ul>
      <li id="current_page">HOME</li>
      <li>CAR LOANS</li>
      <li>AUTO LOAN REFINANCING</li>
      <li>AUTO CALCULATORS</li>
      <li>TOOLS AND RESOURCES</li>
    </ul>
  </div>
</div>
<div id="content_container">
  <img src="img/cf_mobile_website-4.jpg" />
</div>

1 个答案:

答案 0 :(得分:1)

你的css错误地指定了元素,你想要的是:

#menu ul li#current_page{
    background:#288E3A;
}

更好的是,您可以使用css指定第一个孩子,这样您就不需要添加自定义ID:

#menu ul li:first-child{
    background:#288E3A;
}