当我将鼠标悬停在一个正方形上时,我做了一个小弹出窗口,但即使有现有的边距,我也想进入这个弹出窗口。
这是我的 HTML 和 CSS 代码片段:
.vertical {
height: 70px;
width: 70px;
border-radius: 5px;
margin-bottom: 10px;
margin-right: 10px;
border: solid lightgrey;
position: relative;
}
.frame {
height: 100%;
}
.st {
height: 250px;
}
.info {
visibility: hidden;
position: absolute;
top: 0;
left: 120%;
margin-left: -5px;
border-radius: 5px;
border: solid black 1px;
color: white;
}
.vertical:hover .info {
visibility: visible;
}
.arrow {
position: absolute;
right: 100%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent rgba(2, 0, 0, 0.75) transparent transparent;
top: 25px;
}
<div class="vertical">
<div class="frame"></div>
<div class="info">
<div class="header">
<div class="name">Hover</div>
</div>
<div class="st"></div>
<div class="arrow"></div>
</div>
</div>
这是一个示例(如果您不按照箭头操作,弹出窗口将关闭):
https://jsfiddle.net/bpez64fr/
我想忽略边距并允许用户转到弹出窗口并使其像没有边距一样工作
最佳答案
我的策略是将要显示的元素悬停在 left:100%
上,以便光标“落入”没有间隙。然后,您可以在此元素上使用 padding
在主元素和悬停元素之间创建视觉空白,并将元素的内容放在我的示例中的内部元素 .info-inner
中。注意 .info-inner
必须是 position:relative
才能使 .arrow
的定位起作用。
让我知道这是否适合您。
.vertical {
height: 70px;
width: 70px;
border-radius: 5px;
margin-bottom: 10px;
margin-right: 10px;
border: solid lightgrey;
position: relative;
}
.frame {
height: 100%;
}
.st {
height: 250px;
}
.info {
visibility: hidden;
position: absolute;
top: 0;
left: 100%;
padding-left: 10px;
}
.info-inner {
border-radius: 5px;
border: solid black 1px;
color: white;
position: relative;
}
.vertical:hover .info {
visibility: visible;
}
.arrow {
position: absolute;
right: 100%;
margin-left: -5px;
border-width: 5px;
border-style: solid;
border-color: transparent rgba(2, 0, 0, 0.75) transparent transparent;
top: 25px;
}
<div class="vertical">
<div class="frame"></div>
<div class="info">
<div class="info-inner">
<div class="header">
<div class="name">Hover</div>
</div>
<div class="st"></div>
<div class="arrow"></div>
</div>
</div>
</div>
关于css - 忽略 CSS 中悬停的边距,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55284103/