我想突出显示您点击的当前菜单.我正在使用CSS,但它现在正在运行.
这是我的css代码:
#sub-header ul li:hover{ background-color: #000;}
#sub-header ul li:hover a{ color: #fff; }
#sub-header ul li.active{ background-color: #000; }
#sub-header ul li.active a{ color: #fff; }
Run Code Online (Sandbox Code Playgroud)
这是我的HTML:
<div id="sub-header">
<ul>
<li> <a href="index.php">Home</a> </li>
<li> <a href="contact.php">Contact Us</a> </li>
<li> <a href="about.php">About Us</a> </li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
当我悬停并且菜单处于活动状态时,这就是我喜欢的

悬停是可以的,问题是当我点击菜单后黑色地面不显示
@Jonathan,我已经解决了它,它比你给出的更简单.
这是我的答案:
$(function(){
// this will get the full URL at the address bar
var url = window.location.href;
// passes on every "a" tag
$("#sub-header a").each(function() {
// checks if its the same on the address bar
if(url == (this.href)) {
$(this).closest("li").addClass("active");
}
});
});
Run Code Online (Sandbox Code Playgroud)
然后在我的CSS文件:
.active { background-color: #000; }
/* to override the existing css for "a" tag */
#sub-header .active a{ color: #fff; }
Run Code Online (Sandbox Code Playgroud)
Sam*_*son 29
在每个页面的正文中添加一个类:
<body class="home">
Run Code Online (Sandbox Code Playgroud)
或者,如果您在联系页面上:
<body class="contact">
Run Code Online (Sandbox Code Playgroud)
然后在创建样式时考虑到这一点:
#sub-header ul li:hover,
body.home li.home,
body.contact li.contact { background-color: #000;}
#sub-header ul li:hover a,
body.home li.home a,
body.contact li.contact a { color: #fff; }
Run Code Online (Sandbox Code Playgroud)
最后,将类名应用于列表项:
<ul>
<li class="home"><a href="index.php">Home</a></li>
<li class="contact"><a href="contact.php">Contact Us</a></li>
<li class="about"><a href="about.php">About Us</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
这一点,无论何时您在body.home页面上,您的li.home a链接都将具有默认样式,表明它是当前页面.