我正在尝试更改用户在我的网站上选择的活动或当前页面导航链接的颜色。我做错了什么?谢谢
到目前为止,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使用includePHP函数为导航菜单调用了一个页面模板:
<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>
我认为您对a:active
CSS选择器的作用感到困惑。这只会在你点击链接时改变链接的颜色(并且只会在点击的持续时间内,即你的鼠标按钮停留的时间)。你需要做的是在你的CSS中引入一个新的类,例如.selected
,当你选择一个链接时,用新的类更新所选的菜单项,例如
<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
参数。
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>
为活动/当前页面添加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; }