<div style="text-align: center;">
<p>
<a href="#" data-tooltip="left tooltip" data-placement="left">left tooltip</a>
</p>
<p>
<a href="#" data-tooltip="right tooltip" data-placement="right">right tooltip</a>
</p>
<p>
<a href="#" data-tooltip="top tooltip" data-placement="top">top tooltip</a>
</p>
<p>
<a href="#" data-tooltip="bottom tooltip" data-placement="bottom">bottom tooltip</a>
</p>
</div>
body {
margin: 20px;
}
a[data-tooltip] {
position: relative;
}
a[data-tooltip]::before,
a[data-tooltip]::after {
position: absolute;
display: none;
opacity: 0.85;
}
a[data-tooltip]::before {
/*
* using data-tooltip instead of title so we
* don't have the real tooltip overlapping
*/
content: attr(data-tooltip);
background: #000;
color: #fff;
font-size: 13px;
padding: 5px;
border-radius: 5px;
/* we don't want the text to wrap */
white-space: nowrap;
text-decoration: none;
}
a[data-tooltip]::after {
width: 0;
height: 0;
border: 6px solid transparent;
content: '';
}
a[data-tooltip]:hover::before,
a[data-tooltip]:hover::after {
display: block;
}
/** positioning **/
/* left tooltip */
a[data-tooltip][data-placement="left"]::before {
top: -25%;
right: 100%;
margin-right: 10px;
}
a[data-tooltip][data-placement="left"]::after {
border-left-color: #000;
border-right: none;
top: 50%;
right: 100%;
margin-top: -6px;
margin-right: 4px;
}
/* right tooltip */
a[data-tooltip][data-placement="right"]::before {
top: -25%;
left: 100%;
margin-left: 10px;
}
a[data-tooltip][data-placement="right"]::after {
border-right-color: #000;
border-left: none;
top: 50%;
left: 100%;
margin-top: -6px;
margin-left: 4px;
}
/* top tooltip */
a[data-tooltip][data-placement="top"]::before {
bottom: 100%;
left: 0;
margin-bottom: 10px;
}
a[data-tooltip][data-placement="top"]::after {
border-top-color: #000;
border-bottom: none;
bottom: 100%;
left: 10px;
margin-bottom: 4px;
}
/* bottom tooltip */
a[data-tooltip][data-placement="bottom"]::before {
top: 100%;
left: 0;
margin-top: 10px;
}
a[data-tooltip][data-placement="bottom"]::after {
border-bottom-color: #000;
border-top: none;
top: 100%;
left: 10px;
margin-top: 4px;
}
This Pen doesn't use any external CSS resources.