【发布时间】:2022-01-25 19:08:39
【问题描述】:
我有一个包含大量数据的容器框,并且由于页面上的高度有限,因此需要在此容器上自动滚动溢出-y。
在这个容器内,一些元素有工具提示。工具提示当然会在悬停时显示,并且必须是 position: absolute。
我的问题是自overflow-y: auto 以来,工具提示不会显示在父容器之外。
是否有解决此问题的方法?我没有找到解决这个问题的其他问题。
代码:
.box {
padding: 2rem;
background-color: #e4e4e4;
border-radius: 0.5rem;
position: absolute;
top: 1rem;
left: 1rem;
width: 10rem;
height: 10rem;
overflow-y: auto;
}
.tooltip {
position: relative;
}
.tooltip-text {
pointer-events: none;
color: white;
width: 15rem;
padding: 0.5rem 1rem;
background-color: #2e2e2e;
border-radius: 0.5rem;
position: absolute;
top: 1.5rem;
left: 50%;
transform: translateX(-50%);
opacity: 0;
transition: 500ms;
}
.tooltip:hover .tooltip-text {
opacity: 1;
}
<div class="box">
<div class="tooltip">
<div class="tooltip-text">I am an idiot, and this is a long text to demonstrate it.</div>
<p class="text">Hover here!</p>
</div>
<p class="text">Some data here.</p>
<p class="text">Some data here.</p>
<p class="text">Some data here.</p>
<p class="text">Some data here.</p>
<p class="text">Some data here.</p>
<p class="text">Some data here.</p>
<p class="text">Some data here.</p>
<p class="text">Some data here.</p>
<p class="text">Some data here.</p>
</div>
【问题讨论】:
-
移除溢出:隐藏
-
需要
overflow: hidden。无法删除它。这只是一个示例,但我有需要此属性存在的特定需求。 -
但是我有特定的需求需要这个属性。 --> 分享一下,不要给我们一个与您的特定需求相差甚远的通用示例
-
将
div.tooltip-text放在div.box之外,而不是div.box的子级 -
由于您没有阐明您的“特定需求”,我无法给您一个好的答案,但我可以建议提取工具提示并将其移到带有“box”类的 div 之外, 并且可能将它们都放在另一个 div 中以更好地控制定位,请查看:jsfiddle.net/HosseinKD/ag514juo/11"note the usage of "+" selector in css section"