如何将工具提示水平居中于链接顶部

时间:2014-02-11 18:07:14

标签: html css css-position

我正在尝试将工具提示框插入到标签的顶部和中心。我有这个工作的小文本,但我似乎无法让它以大文本为中心。

我知道这与定位框和箭头有关,但我似乎无法找到正确的组合,使箭头位于框下方,框中心位于标签上方。

我希望仅用CSS就可以实现这一目标。

HTML:

<div> 
    <a class="tooltip" href="#" title="tooltip">
        <span>Text</span>    
    </a>

</div>
<div> <a class="tooltip" href="#" title="tooltip">
        <span>TextTextText</span>    
    </a>

</div>

CSS:

div {
    padding: 150px;
    display: inline-block;
    background-color: red;
}
.tooltip{
    display: inline;
    position: relative;
}
.tooltip:hover:after{
    background: #333;
    background: rgba(0,0,0,.8);
    border-radius: 5px;
    bottom: 26px;
    color: #fff;
    content: attr(title);
    padding: 10px;
    left: -50%;
    position: absolute;
    z-index: 98;
}
.tooltip:hover:before{
    border: solid;
    border-color: #333 transparent;
    border-width: 6px 6px 0 6px;
    bottom: 20px;
    content: "";
    left: 30%;
    position: absolute;
    z-index: 99;
}

And here is the fiddle

我真的很感激我能得到的任何帮助。

4 个答案:

答案 0 :(得分:18)

如果工具提示没有明确的width,您可以使用负translateX按水平居中对齐,如下所示:

.tooltip:hover:after {
    left: 50%;
    transform: translateX(-50%);
    /* other styles ... */
}

.tooltip:hover:before {
    left: 50%;
    transform: translateX(-50%);
    /* other styles ... */
}

<强> JSFiddle Demo

答案 1 :(得分:0)

我认为您需要教程才能查看Create CSS3 Tooltip,主要代码是

<a title="Create Simple Tooltip Using CSS3" class="tooltip">Some Sample CSS3 Tooltip</a>

.tooltip
{
 display: inline;
 position: relative;
}
.tooltip: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;
}

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

答案 2 :(得分:-1)

您可能会发现以下链接很有帮助。我认为这将完全符合您的需求:

http://www.webdesignerdepot.com/2012/11/how-to-create-a-simple-css3-tooltip/

他们在这里有一个有效的例子:

http://netdna.webdesignerdepot.com/uploads7/how-to-create-a-simple-css3-tooltip/tooltip_demo.html

答案 3 :(得分:-1)

这是我现在能想到的(凌晨1点:))。适用于所有浏览器。

div {
padding: 150px;
display: inline-block;
background-color: red;
text-align: center;
}
.tooltip {
display: inline;
position: relative;
}
.tooltip:hover:after {
background: #333;
background: rgba(0, 0, 0, .8);
border-radius: 5px;
bottom: 26px;
color: #fff;
content: attr(title);
padding: 10px;
left: 50%;
margin-left: -50px;
position: absolute;
z-index: 98;
width: 100px;
text-align: center;
}
.tooltip:hover:before {
border: solid;
border-color: #333 transparent;
border-width: 6px 6px 0 6px;
bottom: 20px;
right: 50%;
margin-right: -15px;
content:"";
position: absolute;
z-index: 99;
}

此致 阿肖克