dbarnes dbarnes - 4 months ago 8
HTML Question

How to center a tooltip horizontally on top of a link

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.


<a class="tooltip" href="#" title="tooltip">

<div> <a class="tooltip" href="#" title="tooltip">



div {
padding: 150px;
display: inline-block;
background-color: red;
display: inline;
position: relative;
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;
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.


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.