css - 忽略 CSS 中悬停的边距

标签 css hover

当我将鼠标悬停在一个正方形上时,我弹出了一个小窗口,但我想在有现有边距的情况下转到这个弹出窗口。

这是我的 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/

相关文章:

css - ColdFusion cfstatic 包括所有 CSS 文件

html - 使按钮在鼠标悬停时可见

css - 下拉导航菜单被较低的 div 重叠

html - 更改导航栏中所选元素的字体颜色

javascript - 防止 <label></label> 调整大小

javascript - 调整输入复选框的填充并与按钮垂直对齐

html - Bootstrap Navbar 在 jumbotron 之上(覆盖)

JQuery 悬停循环

CSS 悬停在一个 div 上,但如果悬停在他的 child 身上则不会

html - CSS Hover 属性显示非 div 元素