我有一个由 3 个元素和一个包装器创建的工具提示
html:
<div class="tooltip-wrapper" style="position: relative;">
<a href="https://twitter.com/jcubic" title="" rel="Twitter">
<img src="http://images.jcubic.pl/jcubic/profile-twitter.png">
</a>
<div class="tooltip" style="top: -34px; left: -18px; display: block; opacity: 0.9648882429441257;">
<div class="box">Twitter</div>
<div class="arrow" style="border-left-width: 5px; border-right-width: 5px; border-top-width: 5px;"></div>
</div>
</div>
内联样式由 javascript(jQuery 插件)创建。
和CSS:
.tooltip {
display: none;
position: absolute;
z-index: 100;
}
.tooltip-wrapper .box {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background: #b72100;
padding: 5px 10px;
display: inline-block;
text-align: center;
}
.tooltip-wrapper .arrow {
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid #b72100;
margin: auto;
}
仅使用一个元素和 css 伪元素 :after for arrow 来创建工具提示是否可行?
<div class="tooltip">Twitter</div>
可以看demo on my website (配置文件图标)。
我尝试将 .tooltip
与 .box
样式合并并创建 tooltip:after { content: '';
来自 .arrow
但样式不起作用。
最佳答案
是的,这是可能的。
位置 .box
相对位置和 :after
绝对位置。
HTML:
<div class="tooltip-wrapper" style="position: relative;">
<a href="https://twitter.com/jcubic" title="" rel="Twitter">
<img src="http://images.jcubic.pl/jcubic/profile-twitter.png" />
</a>
<div class="tooltip" style="top: -34px; left: -18px; display: block; opacity: 0.9648882429441257;">
<div class="box">Twitter</div>
</div>
</div>
CSS:
.tooltip-wrapper .box {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
background: #b72100;
padding: 5px 10px;
display: inline-block;
text-align: center;
position: relative; /* added this line */
}
.tooltip-wrapper .box:after {
content: '';
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid #b72100;
position: absolute;
bottom: -5px;
left: 50%;
margin-left: -3px;
}
同时检查这个 demo .
关于jquery - 如何使用 CSS 中的一个元素创建工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081358/