gpt4 book ai didi

javascript - 具有绝对定位的工具提示元素被溢出的容器剪裁 : auto

转载 作者:可可西里 更新时间:2023-11-01 13:00:44 24 4
gpt4 key购买 nike

我在模态中有一个工具提示。

有没有一种方法可以避免工具提示被带有 overflow 的容器剪裁?

我需要模态对话框来处理内容溢出,所以我无法从中删除 overflow: auto

body {
margin: 0;
}

.container {
display: flex;
height: 100vh;
align-items: center;
justify-content: center;
}

.modal-dialog {
display: block;
height: 50%;
width: 50%;
background: cyan;
border: 1px solid;
overflow: auto;
}

.tooltip {
position: relative;
color: red;
text-decoration: underline;
}

.tooltip::after {
display: none;
content: 'Hello';
position: absolute;
left: -100%;
top: -100%;
height: 20px;
width: 60px;
}

.tooltip:hover::after {
display: inline-block;
background: black;
color: white;
}
<div class="container">
<div class="modal-dialog">
<span class="tooltip">Tooltip</span> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
</div>
</div>

最佳答案

正如您所指出的,overflow: auto 规则将裁剪任何溢出容器的内容。使用 overflow: hidden 会得到类似的结果。

因为您的工具提示弹出窗口(悬停状态)是绝对定位的,并且 nearest positioned ancestor是tooltip触发器本身(position: relative),这个触发器是在容器内的overflow: auto,没有办法在容器外显示弹窗。

您可以做的是让最近定位的祖先元素成为 DOM 结构中更高的元素。然后 abspos 弹出窗口将引用该元素,而不是带有 overflow 的元素。

body {
margin: 0;
}

.container {
display: flex;
height: 100vh;
align-items: center;
justify-content: center;
position: relative; /* moved here from .tooltip */
}

.modal-dialog {
display: block;
height: 50%;
width: 50%;
background: cyan;
border: 1px solid;
overflow: auto;
}

.tooltip {
color: red;
text-decoration: underline;
}

.tooltip::after {
display: none;
content: 'Hello';
position: absolute;
left: 15%; /* adjust as necessary */
top: 15%; /* adjust as necessary */
height: 20px;
width: 60px;
}

.tooltip:hover::after {
display: inline-block;
background: black;
color: white;
}
<div class="container">
<div class="modal-dialog">
<span class="tooltip">Tooltip</span> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque cupiditate ducimus, ea numquam est magnam quia ex consequuntur! Ratione modi dicta totam vel dolore, consequuntur nulla, amet labore odio voluptate!
</div>
</div>

关于javascript - 具有绝对定位的工具提示元素被溢出的容器剪裁 : auto,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40093740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com