问:
我有以下菜单:
如果active
状态的链接,我想更改列表项的颜色。怎么做?
<div style="height: 50px">
<ul id="topnav" style="text-align: center">
<li><a href="MasterData.aspx">1111</a></li>
<li><a href="ScheduleForm.aspx">2222 </a></li>
<li><a href="MapingData.aspx">3333</a> </li>
<li><a href="EditSchedule.aspx">4444</a> </li>
<li><a href="LoginPage.aspx">5555</a></li>
</ul>
</div>
ul#topnav
{
margin: 0px;
padding: 2px 0px;
clear: both;
width: 980px;
list-style: none;
position: relative; /*--Set relative positioning on the unordered list itself - not on the list item--*/
font-size: 1.2em;
background-color: #CC6A11;
height: 50px;
}
ul#topnav li
{
float: right;
margin: 0px auto; /* margin-right:0;*/
padding: 5px 27px;
border-right: 1px solid #555; /*--Divider for each parent level links--*/
background-color: #CC6A11; /*url(topnav_stretch.gif) repeat-x;*/
text-align:center;
}
ul#topnav li a
{
padding: 10px 5px;
display: block;
color: #f0f0f0;
text-decoration: none;
width:121px;
text-align:center;
}
ul#topnav li:hover
{
background-color: #1376c9;
}
ul#topnav li a:active
{
background-color: Purple;
}
ul#topnav li span
{
text-align:right;
float: right;
padding: 5px 2px;
position: absolute;
margin-right: 0;
left: 0;
top: 52px;
display: none; /*--Hide by default--*/
width: 977px;
z-index: 10;
background-color: #1376c9;
color: #fff; /*--Bottom right rounded corner--*/
-moz-border-radius-bottomright: 5px;
-khtml-border-radius-bottomright: 5px;
-webkit-border-bottom-right-radius: 5px; /*--Bottom left rounded corner--*/
-moz-border-radius-bottomleft: 5px;
-khtml-border-radius-bottomleft: 5px;
-webkit-border-bottom-left-radius: 5px;
}
ul#topnav li:hover span
{
}
/*--Show subnav on hover--*/
ul#topnav li span a
{
display: inline;
}
/*--Since we declared a link style on the parent list link, we will correct it back to its original state--*/
ul#topnav li span a:hover
{
text-decoration: underline;
}
$(document).ready(function() {
$("ul#topnav li").hover(function() { //Hover over event on list item
$(this).css({ 'background': '#1376c9 repeat-x' }); //Add background color and image on hovered list item
$(this).find("span").show(); //Show the subnav
}, function() { //on hover out...
$(this).css({ 'background': '#CC6A11' }); //Ditch the background
$(this).find("span").hide(); //Hide the subnav
});
});
答案 0 :(得分:0)
您需要以某种方式'标记'锚标记为活动标记,通常使用id:
<div style="height: 50px">
<ul id="topnav" style="text-align: center">
<li><a href="MasterData.aspx" id="active">1111</a></li>
<li><a href="ScheduleForm.aspx">2222 </a></li>
<li><a href="MapingData.aspx">3333</a> </li>
<li><a href="EditSchedule.aspx">4444</a> </li>
<li><a href="LoginPage.aspx">5555</a></li>
</ul>
</div>
通过这种方式,可以轻松生成与活动链接不同的CSS。您需要在代码中设置该ID(除非每个页面都有单独的文件)
同时查看http://hicksdesign.co.uk/journal/highlighting-current-page-with-css,因为在那里有一个很好的替代方法。
答案 1 :(得分:-1)
如果你需要一些非常简单的东西,下面的内容就是
See my fiddle - 为了让小提琴做你想做的事,你需要点击“运行”。这将导航浏览器“/ _display /”,然后您将看到突出显示“显示”链接。
<style>
.highlight
{
background-color:yellow;
}
</style>
<script>
$(function(){
var path = window.location.pathname;
console.log(path);
$("a[href='" + path +"']" ).addClass("highlight");
});
</script>
<ul id="navmenu">
<li><a href="guy.asp">me</a></li>
<li><a href="/_display/">display</a></li>
</ul>
如果链接包含参数,那么您将需要一个循环。让我知道,我将在这里发布代码。