我有两列并排,右边一列有一个工具提示,悬停时会溢出到左侧。这些列有很多内容并且可以滚动,因此它们相对定位以允许工具提示跟随滚动。但是,工具提示被左列部分隐藏。我希望它溢出到边缘,就好像它位于左栏上方一样。
https://jsfiddle.net/yL9ugkvj/ 是它的外观模型。
JS
class Columns extends React.Component {
render() {
return (
<div className='flex'>
<div className='left'>
<div>
<div></div>
</div>
</div>
<div className='right'>
<div>
<div id="header">
<p className="label">
label
<div className='tooltip'>
<p>tooltip</p>
</div>
</p>
</div>
</div>
</div>
</div>
)
}
}
ReactDOM.render(<Columns />, document.querySelector("#app"))
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
div.flex {
display: grid;
grid-template-columns: 50% 50%;
}
div.left::-webkit-scrollbar {
display: none;
}
div.left {
display: flex;
flex-direction: column;
top: 0;
height: 92vh;
overflow-y: scroll;
-ms-overflow-style: none;
scrollbar-width: none;
justify-content: flex-start;
z-index: 0;
}
div.right::-webkit-scrollbar {
display: none;
}
div.right {
position: relative;
display: flex;
flex-direction: column;
top: 0;
height: 92vh;
overflow-y: scroll;
overflow-x: visible;
-ms-overflow-style: none;
scrollbar-width: none;
justify-content: flex-start;
z-index: 1;
}
div.flex>div>div {
border: 2px solid #E0E0E0;
background-color: #F5F4F2;
border-radius: 15px;
margin: 10px;
padding: 10px 40px;
min-width: 80%;
}
#header {
display: flex;
position: relative;
border: none;
margin: 0px;
padding: 0px;
overflow: visible;
}
div.tooltip {
display: none;
position: absolute;
border-radius: 12px;
background: #E8E6DE;
box-shadow: 0px 4px 11.9px 8px rgba(0, 0, 0, 0.25);
z-index: 3;
padding: 25px;
width: 35vw;
right: 100%;
}
p.label:hover>div.tooltip {
font-size: 16px;
display: inline-block;
padding: 10px 25px;
}
我已经尝试了很多东西,比如 z-index、手动设置宽度等。在我使每列独立可滚动之前(当它没有相对定位时返回),它起作用了,但相对定位它会中断:(
删除父容器的
overflow-y: scroll;
.right
似乎可以解决问题。