答案 0 :(得分:2)
以下是一种使用<figcaption>
来扮演您的悬停工具提示角色的解决方案。
使用<figcaption>
作为工具提示将为您的标记提供额外的语义含义。
figure.inline-image,
figure.inline-image img {
display: inline-block;
width: 260px;
height: 150px;
background-color: rgba(0, 0, 0, 1);
}
figcaption {
display: none;
position: relative;
top: -70px;
left: 40px;
padding: 3px;
width: auto;
border: 1px solid rgba(0, 0, 0, 1);
background-color: rgba(255, 255, 227, 1);
font-size: 12px;
}
figure.inline-image:hover figcaption {
display: inline-block;
}
<figure class="inline-image">
<img src="danish-flag.jpg" alt="Flag of Denmark" />
<figcaption>In the sky flies a red flag with a white cross whose vertical bar is shifted towards the flagpole.</figcaption>
</figure>
答案 1 :(得分:1)
首先检查title属性,它与alt属性非常相似。
除此之外,还有mouseenter
和mouseleave
等事件。您甚至可以使用data-alt
属性在元素上提供数据。(您可以将alt替换为任何内容)。
此外还有许多图书馆,但我会快速展示你。
(function(){NodeList.prototype.forEach = Array.prototype.forEach;
var toolTip = document.createElement('DIV');
toolTip.style.display = "none";
toolTip.style.position = "absolute";
toolTip.style.width = "50px";
toolTip.style.height = "auto";
toolTip.style.border = "solid 1px black";
toolTip.style.transition = "top 50ms,left 50ms, display 500ms";
function updatePosition(e){
toolTip.style.top = e.clientY + "px";
toolTip.style.left = e.clientX + "px";
}
document.body.appendChild(toolTip);
document.querySelectorAll("[data-alt]").forEach(function(e){
e.addEventListener('mouseenter',function(e){
toolTip.style.display = "block";
toolTip.style.cursor = "text";
toolTip.style.top = e.clientY + "px";
toolTip.style.left = e.clientX + "px";
toolTip.textContent = this.getAttribute('data-alt');
})
})
document.querySelectorAll("[data-alt]").forEach(function(e){
e.addEventListener('mousemove',function(e){
updatePosition(e)
})
})
document.querySelectorAll("[data-alt]").forEach(function(e){
e.addEventListener('mouseleave',function(e){
toolTip.style.display = "none";
})
})
})();
&#13;
<h2 class="space" data-alt="Hello">Your Answer</h2>
&#13;
答案 2 :(得分:0)
一个选项可能是使用:before
所述的:after
或{{1}}伪元素来制作CSS工具提示。