采取以下代码:
<abbr title="World Health Organization">WHO</abbr>
我们可以为 abbr 标签的标题设置样式吗?所以我们可以使用标题而不是自定义工具提示?
实际上,Alex Mcp 的回答是不正确的。对于现代浏览器,使用 CSS 完全可以做到这一点。但是,可以使用带有 JavaScript 的旧浏览器的后备方案。
abbr {
position: relative;
}
abbr:hover::after {
position: absolute;
bottom: 100%;
left: 100%;
display: block;
padding: 1em;
background: yellow;
content: attr(title);
}
当 abbr 标签悬停在上面时,这将使用标题中的属性内容在 abbr 标签的右上角添加一个绝对定位的伪元素。
如果您的意思是为弹出的实际文本设置样式,不,您不能使用 CSS 设置样式;它是特定于浏览器的。基于 Javascripttooltips
将是我处理它的方式,因为它允许对此行为进行更多控制。
我正在寻找类似的东西,并提出了以下替代方案(在 Mac 上的 Firefox、Safari 和 Chrome 上进行了测试,当我点击它时,它适用于 IE 7-10),基于此链接:
HTML:
<abbr title="My Custom Abbreviation" name="">Abbreviation</abbr>
jQuery:
$('[title]').each( function() {
var mytitle = $(this);
mytitle.data('title',mytitle.attr('title')); // get title attribute value
mytitle.attr('name', mytitle.attr('title')); // add title attribute value to NAME attribute
mytitle.removeAttr('title'); // remove the title attribute, removing browser tooltip
});
CSS:
abbr {
position: relative;
}
abbr:hover::after {
position: absolute;
bottom: 100%;
left: 100%;
display: block;
padding: 1em;
background: yellow;
content: attr(name);
}
您可以设置缩短版本的样式,因此在本例中为“WHO”。但不是弹出框出现的方式,因为它是由浏览器/操作系统控制的。
您可以通过以编程方式将一些JQuery内容应用于任何abbr
标记来解决此限制 - 这将显示 a div
,其中的内容将与title
调用它的标记上的 相同。