当用户将鼠标悬停在另一个div上时,我试图让div出现。问题是,出现的div既不是孩子也不是用户应该悬停的div的兄弟。我做了一个jsfiddle来表明我的意思here。
当用户将鼠标悬停在#showMe
上时,如何显示#button
?
#parent{
height:200px;
width:200px;
background-color:yellow;
}
#button{
height:100px;
width:100px;
background-color:blue;
}
#child, #sibling, #showMe{
height:50px;
width:50px;
background-color:red;
display:none;
}
#button:hover #child{
display:block;
}
#button:hover + #sibling{
display:block;
}

<div id="parent">parent
<div id="button">button<div id="child">child</div></div>
<div id="sibling">sibling</div>
</div>
<div id="showMe">showMe</div>
&#13;
答案 0 :(得分:0)
嗯,你唯一的选择就是通过Javascript来做 使用Javascript:
function showShowMe() {
document.getElementById("showMe").style.display = "block";
}
function hideShowMe() {
document.getElementById("showMe").style.display = "none";
}
&#13;
#parent{
height:200px;
width:200px;
background-color:yellow;
}
#button{
height:100px;
width:100px;
background-color:blue;
}
#child, #sibling, #showMe{
height:50px;
width:50px;
background-color:red;
display:none;
}
#button:hover #child{
display:block;
}
#button:hover + #sibling{
display:block;
}
&#13;
<div id="parent">parent
**<div id="button" onmouseover="showShowMe()" onmouseout="hideShowMe()">button<div id="child">child</div></div>**
<div id="sibling">sibling</div>
</div>
<div id="showMe">showMe</div>
&#13;
答案 1 :(得分:0)
嗯,实际上不可能通过纯CSS来实现这一点,并且您使用JavaScript。
但是在这种特殊情况下,我们可以通过#parent
而不是none
代替pointer-events
并向父母提供adjacent sibling combinator +
,然后再重新伪造效果 - 在initial
本身上设置#button
到#parent{
height:200px;
width:200px;
background-color:yellow;
pointer-events: none;
}
#parent:hover + #showMe {
display: block;
}
#button{
height:100px;
width:100px;
background-color:blue;
pointer-events: initial;
}
#child, #sibling, #showMe{
height:50px;
width:50px;
background-color:red;
display:none;
}
#button:hover #child{
display:block;
}
#button:hover + #sibling{
display:block;
}
的值。
值得一提的是pointer-events
关于HTML / XML元素pointer-events
。
<强> is not supported in IE<=10 强>
<div id="parent">parent
<div id="button">button<div id="child">child</div></div>
<div id="sibling">sibling</div>
</div>
<div id="showMe">showMe</div>
&#13;
{{1}}&#13;