Моя стратегия заключается в том, чтобы поместить элемент, который будет отображаться при наведении курсора на left:100%
, чтобы не было пробела для «падения» курсора.Затем вы можете использовать padding
для этого элемента, чтобы создать визуальный пробел между основным элементом и элементом hover, и поместить содержимое элемента во внутренний элемент .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>