这是非常基本的,我不知道如何让它发挥作用。
如果下拉列表锚点没有下划线,如何保持.selected类加下划线?
HTML:
<ul id="nav">
<li>
<a href="about.html">about</a>
</li>
<li>
<a href="about.html">about</a>
</li>
<li class="selected">
<a href="work.html">Work</a>
<ul id="second" class="vis">
<li>
<a href="graphicdesign.html">Graphic Design</a>
</li>
<li>
<a href="illustrations.html">Illustrations</a>
</li>
</ul>
</li>
<!-- etcetera -->
CSS:
ul#nav {
position: relative;
margin-left: 0;
padding-left: 0;
display: inline;
}
ul#nav li {
margin-left: 0;
padding: 3px 15px;
list-style: none;
display: inline;
}
ul#nav li.first {
margin-left: 0;
border-left: none;
list-style: none;
display: inline;
}
ul#second {
position: absolute;
right: -57px;
display: none;
}
.selected {
text-decoration: underline;
}
.selected:hover ul#second {
display: block;
}
.selected:hover ul#second li a {
display: block;
}
a {
text-decoration: none;
}
答案 0 :(得分:3)
只需更改此行:
.selected a{text-decoration:underline;}
这个:
.selected > a{text-decoration:underline;}
答案 1 :(得分:1)
如果您对选择器更具体,可以强调所需的链接,则可以更轻松地选择您不想加下划线的其他项目。我改变了
.selected {text-decoration:underline;}
为:
.selected a {text-decoration:underline;}
另外,像这样添加了text-decoration: none;
:
.selected:hover ul#second li a {display:block; text-decoration: none;}
请参阅jsfiddle
答案 2 :(得分:0)
您必须为.selected
选择器声明规则,并为较低级别的元素覆盖它。
因为.selected
(text-decoration: underlined;
)的所需样式是用户代理默认值,我省略了一些text-decoration
声明。剩下要做的就是为低级别元素添加规则,以高特异性定义:
.selected:hover ul li a {
text-decoration: none;
}
这是updated jsFiddle,用于演示。