Mik*_*ike 5 css parent-child hover text-decorations
可能重复:
如何使CSS文本修饰问题起作用?
我正在使用jquery切换效果来显示或隐藏有关列表元素的更多信息:
jQuery(document).ready(function($) {
$("ul p").hide();
$("ul li").addClass("link");
$("ul li").click(function () {
$("p", this).toggle(300);
});
});
Run Code Online (Sandbox Code Playgroud)
这适用于以下结构:
<ul>
<li>List element 1<p>Additional info 1</p></li>
<li>List element 2<p>Additional info 2</p></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
为了使它看起来"可点击"我是造型.link与css:
ul li.link {
color: #0066AA;
}
ul li.link:hover {
text-decoration: underline;
cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)
但我不希望显示的文本看起来像一个链接所以:
ul li.link p{
color: black;
text-decoration: none;
}
ul li.link p:hover {
cursor: text;
text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)
但是<p>在悬停时仍有下划线(蓝色),尽管投掷文字装饰:无; 在每个自由空间!根据我的理解,这是因为子样式应用于父级之上,所以我实际上正在尝试将"无"放在下划线之上并让它消失.
所以我的问题(最终!)是这样的:有什么办法来摆脱下划线没有采取<p>出来的<li>(我不希望因其他原因做)?
你能控制标记吗?我会将文本包装在<li/>a中<span/>,并编写 CSS 以仅针对带有 的跨度text-decoration:underline;。
事实上,可点击区域应该是一个<a/>href 为“#”的元素。将点击处理程序绑定到锚点而不是 li。然后,您可以使用更多伪选择器,例如 a:visited ,并且记录了单击它的行为。我不确定是否p:hover真的应该在 CSS 中工作。我知道可以使用 jQuery 绑定到任何元素,但使用 CSS 我会坚持使用锚元素。