更新
所有提议的解决方案的实时示例
与 AMC 合作,确定 JavaScript 解决方案在满足要求的情况下会更好地工作。所有内容都将出现在一个页面上,因此根据我的发现,CSS 解决方案将无法正常工作。我提出了简单的 jQuery 代码,以便在单击链接时显示一个项目符号。
jQuery
$(window).load(function(event) {
$('a').click(function() {
$('#Nav li').removeClass();
$(this).parent().addClass("current");
});
});
CSS
#navcontainer3 ul {
width: 200px;
list-style-type:disc;
}
#navcontainer3 ul li {
color: #ccc;
float:right;
clear:right;
}
#navcontainer3 ul li.current {
color: #000;
}
此页面包含所有解决方案的示例,但您可以在此链接中找到单独的 jQuery 解决方案:http: //jsfiddle.net/jtRws/10/。
有趣的问题。显然,有 JavaScript 解决方案,但看起来你想要一个纯 CSS 解决方案。
解决方案 0
通过将列表样式颜色设置为背景颜色来隐藏其他列表项项目符号。
所有页面都将具有相同的导航 HTML,但每个页面<body>
都将具有该页面的id
唯一性。例如:<body id="home">
,<body id="products">
等。然后,使用一些巧妙的 CSS,当前页面将获得特定的样式定义(最后一个定义如下)。
#navcontainer0 ul {
width: 200px;
list-style-type:disc;
}
#navcontainer0 ul li {
color: #fff;
float:right;
clear:right;
}
body#home #homenav0,
body#products #prodnav0 {
color: #000;
}
解决方案 1
用于background
显示和隐藏项目符号图像。基于这篇文章,我使用了以下代码。这篇文章更详细地解释了这项技术。您将在下面找到与实际示例相同的代码。
CSS
#navcontainer ul {
width: 200px;
padding:0;
margin:0;
text-align:right;
}
#navcontainer ul li a:hover {
color: #930;
background: #f5d7b4;
}
body#home a#homenav,
body#products a#prodnav,
body#faq a#faqnav,
body#contact a#connav {
background:url(bullet.gif) 0 50% no-repeat no-repeat;
padding-left:15px;
}
产品页面
<body id="products">
<div id="navcontainer">
<ul id="navlist">
<li><a id="homenav" href="index.html">Home</a></li>
<li><a id="prodnav" href="products.html" >Products</a></li>
</ul>
</div>
</body>