下面是JSfiddle:https://jsfiddle.net/kartik987/u34xsk5e/3/
如果我悬停在上面,图像标签“悬停文本”应该出现在图像下面,目前它出现在“随机文本来自API”下面。“来自API的随机文本”可以是几个单词甚至几个句子。
我试图找到一种方法,始终定位“悬停文本”它下面的图像标签。我一直在尝试的是:
.wrapper {
position: relative;
background-color: #DCDCDC;
/* background-image: linear-gradient(180deg, #fff, #e4e5f0); */
}
.tooltip {
transform: none;
margin: 20px;
display: inline;
position: relative;
}
.tooltip-scroll {
display: inline;
}
.tooltip:hover>.tooltip-text,
.tooltip:hover>.wrapper {
pointer-events: auto;
opacity: 1.0;
}
.tooltip>.tooltip-text,
.tooltip>.wrapper {
display: block;
position: relative;
z-index: 6000;
max-width: 350px;
overflow: visible;
padding: 5px 8px;
border: 1px solid #575757;
margin-top: 10px;
line-height: 16px;
border-radius: 4px;
text-align: left;
color: black;
/* background: #DCDCDC; */
background-image: linear-gradient(180deg, #fff, #e4e5f0);
pointer-events: none;
opacity: 0.0;
transition: all 0.4s ease-out;
}
/* Arrow */
.tooltip>.tooltip-text:before,
.tooltip>.wrapper:before {
display: inline-block;
top: -7px;
content: "";
position: absolute;
border: solid;
border-color: rgba(0, 0, 0, 1) transparent;
border-width: 0 .5em .5em .5em;
z-index: 6000;
/* left: calc(var(--variable-width) + 20px);*/
/* left: 100%-20px
*/
/* left: 20px; */
}
/* Invisible area so you can hover over tooltip */
.tooltip>.tooltip-text:after,
.tooltip>.wrapper:after {
top: -20px;
content: " ";
display: block;
height: 20px;
position: absolute;
width: 60px;
left: 20px;
}
.wrapper>.tooltip-text {
overflow-y: auto;
height: 50px;
display: block;
}
RANDOM TEXT COMING FROM API
<span class="tooltip tooltip-scroll">
<img style="width: 16px; height: 16px" id="di_1230575183658::::16" alt="Er" src="imag.png">
<span class="wrapper">
<span class="tooltip-text">
HOVER TEXT
</span>
</span>
</span>
我不想给给予一个移动的悬停跨度,通过在px中赋予一个左属性。因为“来自API的随机文本”可能是几个单词甚至几个句子。有没有一种方法可以计算并设置左值,使其始终在图像下方对齐?
2条答案
按热度按时间bzzcjhmw1#
您想知道
position: relative
不会在内联元素上创建堆栈上下文。所以你的.tooltip
应该是例如。inline-block
:twh00eeo2#
.tooltip>.tooltip-text,
将这些作为无效选择器删除这其中的大部分可能是CSS自己解释的。关键是各种
transform
,如transform: translate(-1em, 7em);
em
,因为我的大脑更好地使用它,所以1em
==16px
等。