【发布时间】:2014-07-04 11:28:55
【问题描述】:
我希望我的工具提示元素(<span>)出现在页面上的所有内容之上,但仍然相对于其父元素(<td>)。我正在尝试使用 JS,但想要一个无脚本解决方案。
JS 显示/隐藏<span>:
window.AETid = "AE";
function tooltip(tid) {
document.getElementById(tid).style.display="block";
}
function hideTooltip(tid) {
document.getElementById(tid).style.display="none";
}
HTML:
<td class="ht" onmouseover="tooltip(window.AETid);" onmouseout="hideTooltip(window.AETid);">
Send reminders?
<span class="tooltip" id="AE">If this option is selected, e-mail reminders will be sent to the client before each appointment.</span>
</td>
.tooltip 的 CSS:
.ht { position: relative; }
.tooltip {
color: #ff0000;
display: none;
z-index: 100;
position: absolute;
right:0px;
bottom: 0px;
}
目前,当我将鼠标悬停在<td> 上时,工具提示会按预期显示,但它会出现在元素内,从而改变了<td> 的大小,从而改变了<tr>,从而改变了整个<table>。我希望工具提示出现,嗯,就像工具提示一样:在上面并且不影响页面的其余部分。在我的情况下,z-index 似乎并不是一个人做的......
在工具提示中使用position: fixed 而不是absolute <span> 可以防止元素中断DOM,但实际上将其放置在页面上其他所有内容之后(在底部)
非常感谢所有帮助
【问题讨论】:
-
位置必须是
absolute或fixed。现在的位置是相对的,这将影响其他relative或static定位元素的位置 -
我在父级上使用
relative并在工具提示<span>上使用absolute进行了尝试(并编辑了问题以澄清)。工具提示仍在中断 DOM 流。使用fixed使其位于页面上其他所有内容之后
标签: javascript html css tooltip