【问题标题】:How to make a css navigation menu "selected" option still clickable如何使 CSS 导航菜单“选定”选项仍然可点击
【发布时间】:2010-04-09 05:37:14
【问题描述】:

所以我有一个基于 UL 的相当简单的垂直 CSS 菜单。

<ul class="vertnav">
<li><a href="unselected1.php">Item1</a></li>
<li><a href="unselected2.php">Item2</a></li>
<li><a href="selected.php" class="vertnavdown">Selected</a></li>
</ul>

我想要三种基本颜色(比如默认 LI 为棕褐色,VERTNAVDOWN 为橙色,A:HOVER 为红色。但是我似乎无法让 vertnavdown 类继承权,并且 .vertnav li a:visited 每次都会覆盖它. 如果我使用!important 强制它通过,我似乎也无法让悬停工作。

有什么建议吗?我以为我了解 CSS 中的继承,但我想我不了解。

.vertnav{
list-style: none;
margin: 0px;
width: 172px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
text-align: left;
height: 45px;
}
.vertnav li{
margin: 0px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
border-bottom: 0px none;
border-right: 0px none;
border-top: 1px solid #fff;
border-left: 0px none;
text-align: left;
height: 45px;
width: 172px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}

.vertnav li a{
display: block;
text-align: left;   
color: #666666;
font-weight: bold;
background-color: #FFEEC1;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
text-decoration: none;
padding-top: 10px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 15px;
height: 45px;
}
.vertnav li a:visited{
display: block;
text-align: left;   
color: #666666;
background-color: #FFEEC1;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
font-weight: bold;
text-decoration: none;
padding-top: 10px;
padding-right: 0px;
padding-bottom: 0px;
padding-left: 15px;
height: 45px;
}
.vertnav li a:hover{
color: white;
background-color: #ffbf0c;
font-family: Verdana, Arial, Helvetica, sans-serif;
height: 45px;
text-decoration: none;
font-weight: bold;
}
.vertnavdown a
{
display:block;
color: #FFF;
background-color: #ff9000;
}
.vertnavdown a:hover
{
background-color: #ffbf0c;
}

^^^^^^^^^^^^^ 编辑添加 CSS。 ^^^^^^

【问题讨论】:

标签: css inheritance hover


【解决方案1】:

如果您也可以发布 css 将会有所帮助。

你通常需要的是这样的东西

<ul id="nav">
<li><a>one</a></li>
<li class="active"><a>two</a></li>
</ul>

css 是:

#nav li{
color: red;
}
#nav li a:visited{
color: green;
}
#nav li.active a{
color: blue;
}

您需要更具体地使用活动的 css 命名。

【讨论】:

    【解决方案2】:

    .vertnav li a:visited 非常具体,在 CSS 中,更具体的会覆盖不太具体的内容,即使不太具体的 CSS 出现在继承链的后面。

    .vertnavdown 本身将总是.vertnav li a:visited 覆盖——最好的解决方案是更具体地描述.vertnavdown

    .vertnavdown a.vertnavdown a:hover 更改为
    .vertnav ul li a.vertnavdown .vertnav ul li a.vertnavdown:hover 将解决您的问题。

    编辑:

    Smacks head 抱歉,我应该注意到您正在尝试解决 :visited 链接的问题...由于您没有为 a.vertnavdown:visited 指定样式,因此它继承了.vertnav a:visited的风格。

    然后解决方案是将a.vertnavdown:visited 添加到您希望它继承的任何样式声明中。 应该可以解决问题。

    【讨论】:

    • 我觉得这应该是解决方案,但它实际上并没有工作。小时。
    • @aslum;添加了一个可以实际解决问题的修复程序。 ;-)
    【解决方案3】:

    尝试使用 .vertnav li a:visited .vertnavdown

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多