如何解决我可以使用:hover伪类来做到这一点吗?
| 我熟悉:hover psuedo类,并将其用于元素以及我们都已经习惯的典型链接设置。但是,我试图做的是创建一种情况,将鼠标悬停在一个元素上会改变另一个元素的属性。例如,如果我将鼠标悬停在.block1上,则#block2将变为可见。我认为.css看起来像这样....block1:hover div#block2
{
visibility:visible;
}
但这使我无处可去。有什么想法吗?我知道我可能可以使用javascript来做到这一点(使元素出现和消失),但是我很乐意为此找到一个纯CSS解决方案。
解决方法
您要更改的元素必须是您要悬停的元素的子元素。
CSS示例:
#navButton div.text {
display:none;
}
#navButton:hover div.text {
display:block;
}
如果将鼠标悬停在id = \“ navButton \”的元素上,将显示文本div。
否则,请使用JQuery解决方案:
CSS:
#navButton div.text {
display:none;
}
.hover {
display:block;
}
Javascript:
$(\"#navButton\").hover(
function () {
$(\"#navButton div.text\").addClass(\"hover\");
},function () {
$(\"#navButton div.text\").removeClass(\"hover\");
}
);
编辑:
如果悬停的元素位于要修改的元素之前,则还可以对CSS中的兄弟元素执行此操作。像这样:
#navButton + div.text {
display:none;
}
#navButton:hover + div.text {
display:block;
}
要么
#navButton ~ div.text {
display:none;
}
#navButton:hover ~ div.text {
display:block;
}
, 如果第二个元素是第一个元素的后代,则它将起作用。
jsFiddle。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。