我有以下标题:
%div.header
%div.span-25
= link_to logo, root_path
%div.span-25
%div.headermenu
%ul
- if current_page?(root_path)
%li.currentmenu
= link_to "Home", root_path
- else
%li
= link_to "Home", root_path
- if current_page?(user_path)
%li.currentmenu
= link_to "User", user_path
- else
%li
= link_to "User", user_path
在样式中,我有:
.headermenu {
border-radius:0px 0px 5px 5px;
-moz-border-radius:0px 0px 5px 5px;
margin-top:-5px;
position:relative;
display:block;
height:42px;
font-size:11px;
font-weight:bold;
background:transparent url('darkgray_background.gif') repeat-x top;
font-family:Arial,Verdana,Helvitica,sans-serif;
text-transform:uppercase;
}
.headermenu ul {
margin:0px;
padding:0;
list-style-type:none;
width:auto;
}
.headermenu ul li {
display:block;
float:left;
margin:0 1px 0 0;
}
.headermenu ul li a {
display:block;
float:left;
color:#000;
text-decoration:none;
padding:13px 12px 0 12px;
height:28px;
}
.currentmenu {
color:#fff;
border-radius:5px;
-moz-border-radius:5px;
background:transparent url('darkgray_backgroundOVER.gif') no-repeat top center;
}
因此,当前标题菜单将突出显示。突出显示的菜单的背景图像是正确的('darkgray_backgroundOVER.gif'),但字体是黑色的(#000),而不是它应该的#fff。 Firebug显示当前菜单中已取消的字体:
继承自li.currentmenu
element.style { color:#FFFFFF; }
相反,上面显示:
.headermenu ul li a { 颜色:#000000; 等等.... }
为什么不以白色显示字体?在黑色中它几乎不易读。如何将当前菜单的字体设置为白色并将其他字体(非当前菜单)的字体保持为黑色,我该怎么办?
答案 0 :(得分:2)
您需要在锚标记本身上指定颜色,而不仅仅是菜单类。你的CSS不够具体,所以#000超越了。
li.currentmenu a{
color:#fff;
border-radius:5px;
-moz-border-radius:5px;
background:transparent url('darkgray_backgroundOVER.gif') no-repeat top center;
}
将更具体,并且应该正确定位锚标签。
答案 1 :(得分:1)
这可能是一个特殊性问题,只需这样做:
li.currentmenu a{
color:#fff !important;
border-radius:5px;
-moz-border-radius:5px;
background:transparent url('darkgray_backgroundOVER.gif') no-repeat top center;
}
答案 2 :(得分:1)
这是因为.currentmenu
选择器不像.headermenu ul li a
那样具体。
只需将.currentmenu
选择器更改为.headermenu .currentmenu a
.headermenu .currentmenu a {
color:#fff;
border-radius:5px;
-moz-border-radius:5px;
background:transparent url('darkgray_backgroundOVER.gif') no-repeat top center;
}