我正在尝试为我的网站制作自定义CSS导航,但我遇到了一些问题,你可以找到下面的代码。 我在这里制作一个CSS垂直导航是代码:
<style type="text/css">
/* GT stylesheet */
#cssmenu > ul {
list-style: none;
margin: 0;
padding: 0;
vertical-align: baseline;
line-height: 1;
}
/* The container */
#cssmenu > ul {
display: block;
position: relative;
width: 150px;
}
/* The list elements which contain the links */
#cssmenu > ul li {
display: block;
position: relative;
margin: 0;
padding: 0;
width: 250px;
}
/* General link styling */
#cssmenu > ul li a {
/* Layout */
display: block;
position: relative;
margin: 0;
border-top: 1px dotted #3a3a3a;
border-bottom: 1px dotted #1b1b1b;
padding: 11px 20px;
width: 210px;
/* Typography */
font-family: Helvetica, Arial, sans-serif;
color: #d8d8d8;
text-decoration: none;
text-transform: uppercase;
text-shadow: 0 1px 1px #000;
font-size: 13px;
font-weight: 300;
/* Background & effects */
background: #282828;
}
/* Rounded corners for the first link of the menu/submenus */
#cssmenu > ul li:first-child>a {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-top: 0;
}
/* Rounded corners for the last link of the menu/submenus */
#cssmenu > ul li:last-child>a {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom: 0;
}
/* The hover state of the menu/submenu links */
#cssmenu > ul li>a:hover, #cssmenu > ul li:hover>a {
color: #000;
text-shadow: 0 1px 0 rgba(0, 0, 0, .3);
background: #A9CA6F;
background: -webkit-linear-gradient(bottom, #A9CA6F, #B4D876);
background: -ms-linear-gradient(bottom, #A9CA6F, #B4D876);
background: -moz-linear-gradient(bottom, #A9CA6F, #B4D876);
background: -o-linear-gradient(bottom, #A9CA6F, #B4D876);
border-color: transparent;
}
/* The arrow indicating a submenu */
#cssmenu > ul .has-sub>a::after {
content: '';
position: absolute;
top: 16px;
right: 10px;
width: 0px;
height: 0px;
/* Creating the arrow using borders */
border: 4px solid transparent;
border-left: 4px solid #d8d8d8;
}
/* The same arrow, but with a darker color, to create the shadow effect */
#cssmenu > ul .has-sub>a::before {
content: '';
position: absolute;
top: 17px;
right: 10px;
width: 0px;
height: 0px;
/* Creating the arrow using borders */
border: 4px solid transparent;
border-left: 4px solid #000;
}
/* Changing the color of the arrow on hover */
#cssmenu > ul li>a:hover::after, #cssmenu > ul li:hover>a::after {
border-left: 4px solid #fff;
}
#cssmenu > ul li>a:hover::before, #cssmenu > ul li:hover>a::before {
border-left: 4px solid rgba(0, 0, 0, .3);
}
</style>
问题是我无法将我点击的链接更改为背景:#A9CA6F。
我希望当我使用id / class激活<li>
时保持这种颜色:#A9CA6F
有什么帮助吗?
提前致谢!
DEMO这是小提琴的链接!
答案 0 :(得分:1)
添加此...
#cssmenu li.active a {background-color:#A9CA6F;}
我认为您需要做的就是将背景颜色添加到a
并非常具体地定位它。这是小提琴 - 我在CSS的底部添加了一行。如果你没有特别针对它,它将不会否决默认样式。
修改
稍微详细说明一下,以前在你的CSS中说过:
#cssmenu > ul li a {...}
因此,为了定位您的活动类,您必须更多特定于此,否则上述规则将覆盖所有其他规则 - 因此:
#cssmenu > ul li.active a {...}
而不是......
li.active a {...}
因此,例如,在CSS规则之间的无争议的斗争......
#menu a
会击败a.active
a.active
只会击败a
#wrapper #menu a
会击败#menu a
:-) HTH
答案 1 :(得分:1)
试试这个并检查这个小提琴http://jsfiddle.net/sarfarazdesigner/WT9Uw/3/
#cssmenu > ul li.active > a, #cssmenu > ul li.active > a {
background-color:#A9CA6F;
color: #000;
}
答案 2 :(得分:1)
你可以通过一些javascript尝试它,如果它也将在同一页面内导航。 这是一个jQuery解决方案:
$("#cssmenu li").click(function(){
$("#cssmenu li").removeClass('active');
$(this).addClass('active');
});
它将.active
类移动到已单击的li
。
在CSS中,您可以添加一个看起来像这样的选择器(到您的悬停选择器):
#cssmenu > ul li.active a
答案 3 :(得分:1)