How to center a tooltip horizontally on top of a link

梦想的初衷 提交于 2019-12-22 05:19:09

问题


I'm trying to get a tooltip box to be inserted on top and centered of an a tag. I have this working for small Text, but I can't seem to get it to center on large text.

I understand it has to do with positioning the box and the arrow but I can't seem to find the right combination to get the arrow centered under the box and the box centered above the a tag.

I'm hoping to accomplish this with just CSS alone.

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.

I really would appreciate any help I can get.


回答1:


If the tooltip doesn't have an explicit width, you could align that horizontally center, by using a negative translateX as follows:

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

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

JSFiddle Demo.




回答2:


I think you need tutorial to view Create CSS3 Tooltip and the main code is

<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;
}



回答3:


You might find the following link helpful. I think this will do exactly what you need:

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

They have a working example here:

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




回答4:


This is what I can think of now(at 1am :) ). works well with all browsers.

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;
}

Regards, Ashok



来源:https://stackoverflow.com/questions/21709674/how-to-center-a-tooltip-horizontally-on-top-of-a-link

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!