隐藏标题以避免提示信息显示

10

我正在使用CSS制作工具提示。现在使用下面的HTML代码:

<div title="This is some information for our tooltip." class="progress3">
</div>

以及以下的CSS

.progress3{
display: inline;
position: relative;
}

.progress3:hover:after{
background: #333;
background: rgba(0,0,0,.8);
border-radius: 5px;
bottom: 26px;
color: #fff;
content: attr(title);
left: 20%;
padding: 5px 15px;
position: absolute;
z-index: 98;
width: 220px;
content: attr(title);
}

.progress3:hover:before{
border: solid;
border-color: #333 transparent;
border-width: 6px 6px 0 6px;
bottom: 20px;
content: "";
left: 50%;
position: absolute;
z-index: 99;
}
现在它可以工作,当我悬停时会显示工具提示,但也会显示标题... 如何删除下图中框起来的内容。

输入图像描述


1
很遗憾,CSS无法实现:https://dev59.com/5GvXa4cB1Zd3GeqPJXdq - Paulie_D
1个回答

21
只需要不要通过title属性添加内容,将其改为类似data-tooltip的东西即可。
.progress3:hover:after {
    content: attr(data-tooltip);
}

jsFiddle示例

你可以使用JS / jQuery,但是考虑到你采取的方法,如果你想保持功能性,就不可能在保留CSS的情况下隐藏/删除它,因为那样你就没有什么可以添加的了。

HTML

<div data-tooltip="This is some information for our tooltip." class="progress3">
</div>

CSS(层叠样式表)
.progress3 {
    position: relative;
    width: 100px;
    height: 100px;
    background: red;
}

.progress3:hover:after {
    background: #333;
    background: rgba(0,0,0,.8);
    border-radius: 5px;
    bottom: 26px;
    color: #fff;
    content: attr(data-tooltip);
    left: 20%;
    padding: 5px 15px;
    position: absolute;
    z-index: 98;
    width: 220px;
}

.progress3:hover:before {
    border: solid;
    border-color: #333 transparent;
    border-width: 6px 6px 0 6px;
    bottom: 20px;
    content: "";
    left: 50%;
    position: absolute;
    z-index: 99;
}

1
属性名称 tooltip 在所有版本的 HTML 中都是无效的,并且在未来的某个版本中可能会有一些含义(与您的使用不兼容)。建议的方法是使用 data-* 属性,例如 data-tooltip,以避免这样的问题。 - Jukka K. Korpela
@JukkaK.Korpela 感谢您的积极反馈,我完全忘记了那个问题,谢谢 - 我会进行更新。 - Josh Crozier
谢谢JoshC和@JukkaK.Korpela,是的Josh,请您编辑您的答案,这样我就可以确保我做得正确。谢谢大家。 - aled2305
不使用title属性会对SEO产生影响,是吧? - Craig Tullis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接