我有 HTML 结构
<div class="PapaDiv">
<input type="checkbox"/>
<label></label>
<div class="ChildDiv">
<input type="radio"/><label></label>
<input type="radio"/><label></label>
<input type="radio"/><label></label>
</div>
<br/>
</div>
该动物正在根据数据在服务器端动态构建。这有点像嵌套菜单。当用户将鼠标悬停在带有标签的复选框上时,ChildDiv 会显示在它旁边。PapaDivoverflow-y:auto
定义了最大高度。
所以,如果有很多复选框,PapaDiv 会得到一个垂直滚动条。这是想要的行为。现在,如果您将鼠标悬停在底部复选框上,它的 ChildDiv 也会显示在 PapaDiv ( overflow-y:auto
) 中。企业希望它显示在我必须设置的 PapaDiv 之上overflow-y:visible
。
这就是这里的困境。我需要两种行为的混合。我需要 ChildDiv 显示在 PapaDiv 之外,同时如果有很多其他孩子在里面显示滚动条。有针对这个的解决方法吗?
编辑:我认为这不会有太大帮助,但这里是 CSS:
.ChildDiv{
background-color: #EDF1F9;
border: 1px solid #557AB5;
display: none;
max-height: 200px;
overflow-y: auto;
padding: 10px;
position: absolute;
}
.PapaDiv{
background-color: #FFFFFF;
border: 1px solid #557AB5;
box-shadow: 3px 3px 7px rgba(0, 0, 0, 0.3);
left: 0;
max-height: 300px;
overflow-y: auto;
padding: 0.5em;
position: absolute;
top: 0;
width: 98%;
z-index: 501;
}
PapaDiv's parent div {
position: relative;
width: 100%;
}
编辑:没有出现的原因是因为 CSS 中有display:none
's 。涉及到 JavaScript。对于这些元素,鼠标悬停在复选框或其标签上时,ChildDiv 会显示 ( jQuery $('.ChildDiv').show()
)。
从 ChildDiv 或 PapaDiv 鼠标移出时:$('.ChildDiv').hide()
. 此外,还有一个简单的计算来设置 ChildDiv 的“top”和“left”属性,因此它显示在其复选框旁边。ChildDiv 已经用position:absolute;
.