【发布时间】:2019-11-17 18:10:21
【问题描述】:
我有两个并排的 div。右侧的 div 设置为在悬停时展开并显示一条消息。我已将扩展 div 上的 z-index 设置为 z-index: 1,将左侧 div 及其所有子级设置为 z-index: 0,但是扩展 div 只会扩展至其旁边 div 中的文本。
我在这里阅读了多个关于 z-index 和 flex 项目的问题,但无法弄清楚我做错了什么。如Z-index doesn't work with flex elements? 所述,我已经为我的第一个 flex-item 添加了更高的 z-index 但这并没有修复它。
.container {
display: flex;
background-color: lightgray;
height: 48px;
width: 139px;
border-radius: 4px;
}
.container .inner {
height: 48px;
}
.container .inner > div {
display: flex;
z-index: 0;
}
.container .inner.left {
display: flex;
flex-direction: column;
flex: 1 0 auto;
padding-left: 10px;
justify-content: center;
}
.container .inner.right {
display: flex;
flex: 0 1 8px;
background-color: red;
border-radius: 0 4px 4px 0;
overflow: hidden;
transition: 0.3s;
cursor: pointer;
z-index: 1;
}
.container .inner.right .info-msg {
display: none;
transition: 0.3s;
}
.container .inner.right:hover {
flex: 0 1 150px;
}
.container .inner.right:hover .info-msg {
display: flex;
}
<div class="container">
<div class="inner left">
<div class="time">9:00am - 5:00pm</div>
<div class="name">Worker</div>
</div>
<div class="inner right">
<div class="info-msg">Message</div>
</div>
</div>
【问题讨论】:
-
这能回答你的问题吗? Z-index doesn't work with flex elements?
-
很遗憾,我的第一个 flex 项目的 z-index 较高,但它仍然无法正常工作。
-
什么不能正常工作?悬停时会发生什么:jsfiddle.net/nao87vLc?
-
右侧的 div 应向左扩展,并覆盖左侧的 div 和文本。
-
这不是 z-index 问题。使右边的元素位置:绝对,这样它就可以在左边的上方