CSS:如何更改活动导航页面菜单的颜色

时间:2012-07-08 11:11:38

标签: css navigation

我正在尝试更改用户在我的网站上选择的活动或当前页面导航链接的颜色。我究竟做错了什么?感谢。

到目前为止,CSS看起来像这样:

div.menuBar
{
   font-family: BirchStd;
   font-size: 40px;
   line-height: 40px;
   font-weight: bold;
   text-align: center;
   letter-spacing: -0.1em;
}

div.menuBar li{list-style:none; display: inline;}
div.menuBar li a:active{color:#FF0000;}
div.menuBar ul{margin:0;}

我的HTML使用include PHP函数调用导航菜单的页面模板:

<div class="menuBar">
  <ul>
  <li><a href="index.php">HOME</a></li>
  <li><a href="two.php">PORTFOLIO</a></li>
  <li><a href="three.php">ABOUT</a></li>
  <li><a href="four.php">CONTACT</a></li>
  <li><a href="five.php">SHOP</a></li>
 </ul>

3 个答案:

答案 0 :(得分:22)

我认为你对a:active CSS选择器的作用感到困惑。这只会在您点击链接时更改链接的颜色(仅限于点击持续时间,即鼠标按钮停留的时间长度)。你需要做的是引入一个新的类,例如.selected进入CSS,当您选择链接时,请使用新类更新所选菜单项,例如

<div class="menuBar">
    <ul>
        <li class="selected"><a href="index.php">HOME</a></li>
        <li><a href="two.php">PORTFOLIO</a></li>
        ....
    </ul>
</div>

// specific CSS for your menu
div.menuBar li.selected a { color: #FF0000; } 
// more general CSS
li.selected a { color: #FF0000; }

您需要更新模板页面以获取selectedPage参数。

答案 1 :(得分:5)

CSS :active状态表示单击链接的活动状态 - 例如,当您单击它时,但尚未释放鼠标按钮的时刻。它不知道您所在的页面,也不能将任何样式应用于菜单项。

要解决您的问题,您必须创建一个类并手动将其添加到当前页面的菜单中:

a.active { color: #f00 }

<ul>
    <li><a href="index.php" class="active">HOME</a></li>
    <li><a href="two.php">PORTFOLIO</a></li>
    <li><a href="three.php">ABOUT</a></li>
    <li><a href="four.php">CONTACT</a></li>
    <li><a href="five.php">SHOP</a></li>
</ul>

答案 2 :(得分:3)

为活动/当前页面添加ID current

<div class="menuBar">
  <ul>
  <li id="current"><a href="index.php">HOME</a></li>
  <li><a href="two.php">PORTFOLIO</a></li>
  <li><a href="three.php">ABOUT</a></li>
  <li><a href="four.php">CONTACT</a></li>
  <li><a href="five.php">SHOP</a></li>
 </ul>

#current a { color: #ff0000; }