[英]cannot make list item visible with > CSS selector
将其显示设置为“无”后,无法再次使下面的弹出窗口“ redItem”,“ blueItem”和“ greenItem”可见。 当鼠标悬停在嵌套列表中更高节点上时,我使用CSS选择器使它们再次可见。
这是代码:
<ul class="popups" style="vertical-align: bottom; padding: 0px; margin: 0px;">
<li style="width: 165px"><a id="topmostBox" href="#">One_high-up_item</a>
<ul class="popups">
<li><a href="#">First-lower-item</a>
<ul class="popups">
<li name="redItem" ><a href="#" onclick="setTopColorAndVis(this)">Red</a></li>
<li name="blueItem"><a href="#" onclick="setTopColorAndVis(this)">Blue</a></li>
<li name="greenItem"><a href="#" onclick="setTopColorAndVis(this)">Green</a></li>
</ul>
</li>
</ul>
</li>
</ul>
.popups:hover > li {
display: block;
}
.popups {
background-color: white;
font-family: sans-serif;
font-size: 13.5px;
list-style: none;
position: relative;
border: 1px solid lightgray;
border-width: .05em;
border-top-color: rgb(165,165,165);
line-height: 1.2em;
display: inline-table;
}
function setTopColorAndVis(theNestedPopupAnchor)
{
var theColorName = theNestedPopupAnchor.innerHTML;
var topMenuBox = document.getElementById('topmostBox');
topMenuBox.innerHTML = theColorName ;
theNestedPopupAnchor.parentNode.style.display = "none";
}
这是怎么回事:
1)我选择颜色“红色”(第一个列表项)
2)我对setTopColorAndVis(this)的调用使弹出窗口消失(因为用户选择了一个项目,颜色为“红色”,现在不需要该弹出窗口)
3),但是当我将鼠标悬停后在“第一下部项目”列表项,有含“redItem” UL的孩子里,“greenItem”,“blueItem” 不会出现。
因此,我的经验是,我能够成功隐藏名为“ redItem”,“ blueItem”和“ greenItem”的列表项,但是当我将鼠标悬停在“ First-lower-item”上时,尽管有我的CSS代码:
.popups:hover > li {
display: block;
}
不会再次出现“ redItem”,“ greenItem”和“ blueItem”。
我在这里想念什么?
您不能:hover
在具有display:none
的元素上,因为它没有大小...与其一起使用display
,还可以使用visibility
-这将使区域悬停在上面。
像这样:
theNestedPopupAnchor.parentNode.style.visibility = 'hidden'
.popups:hover > li {
visibility: visible;
}
内联样式会覆盖您在CSS代码中的样式。 您应该改用onmouseover
事件和onmouseout
。
尝试
<li name="redItem" ><a href="#" onmouseover="show(this)" onmouseout="hide(this)" onclick="setTopColorAndVis(this)">Red</a></li>
function show(elem){
elem.parentNode.style.display = "block";
}
function hide(elem){
elem.parentNode.style.display = "none";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.