-1

I'm trying to add a tooltip using CSS on an <img> tag but I can't get it to work correctly.

Here is an example where the tooltip works with <a href> </a> tags but trying to apply the same to an <img> tag does not

http://jsfiddle.net/ronluna/6sgLagrr

How can I trigger the tooltip to show while hovering the <img>

/* Base styles for the element that has a tooltip */
img,
[data-tooltip],
.tooltip {
  position: relative;
  cursor: pointer;
}

/* Base styles for the entire tooltip */
img:before,
img:after,
[data-tooltip]:before,
[data-tooltip]:after,
.tooltip:before,
.tooltip:after {
  position: absolute;
  visibility: hidden;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  -webkit-transition: 
   opacity 0.2s ease-in-out,
  visibility 0.2s ease-in-out,
  -webkit-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
 -moz-transition:    
  opacity 0.2s ease-in-out,
  visibility 0.2s ease-in-out,
  -moz-transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
 transition:         
  opacity 0.2s ease-in-out,
  visibility 0.2s ease-in-out,
  transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform:    translate3d(0, 0, 0);
  transform:         translate3d(0, 0, 0);
  pointer-events: none;
}

/* Show the entire tooltip on hover and focus */
img:hover:before,
img:hover:after,
img:focus:before,
img:focus:after,
[data-tooltip]:hover:before,
[data-tooltip]:hover:after,
[data-tooltip]:focus:before,
[data-tooltip]:focus:after,
.tooltip:hover:before,
.tooltip:hover:after,
.tooltip:focus:before,
.tooltip:focus:after {
  visibility: visible;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
}

/* Base styles for the tooltip's directional arrow */
img:before,
.tooltip:before,
[data-tooltip]:before {
  z-index: 1001;
  border: 6px solid transparent;
  background: transparent;
  content: "";
}

/* Base styles for the tooltip's content area */
img:after,
.tooltip:after,
[data-tooltip]:after {
  z-index: 1000;
  padding: 8px;
  width: 160px;
  background-color: #000;
  background-color: hsla(0, 0%, 20%, 0.9);
  color: #fff;
  content: attr(data-tooltip);
  font-size: 14px;
  line-height: 1.2;
  text-align: center;
}

/* Directions */

/* Top (default) */
[data-tooltip]:before,
[data-tooltip]:after,
img:before,
img:after,
.tooltip:before,
.tooltip:after,
.tooltip-top:before,
.tooltip-top:after {
  bottom: 100%;
  left: 50%;
}

[data-tooltip]:before,
.tooltip:before,
img:before,
.tooltip-top:before {
  margin-left: -6px;
  margin-bottom: -12px;
  border-top-color: #000;
  border-top-color: hsla(0, 0%, 20%, 0.9);
}

/* Horizontally align top/bottom tooltips */
[data-tooltip]:after,
.tooltip:after,
img:after,
.tooltip-top:after {
  margin-left: -80px;
}

[data-tooltip]:hover:before,
[data-tooltip]:hover:after,
[data-tooltip]:focus:before,
[data-tooltip]:focus:after,
img:hover:before,
img:hover:after,
img:focus:before,
img:focus:after,
.tooltip:hover:before,
.tooltip:hover:after,
.tooltip:focus:before,
.tooltip:focus:after,
.tooltip-top:hover:before,
.tooltip-top:hover:after,
.tooltip-top:focus:before,
.tooltip-top:focus:after {
  -webkit-transform: translateY(-12px);
  -moz-transform:    translateY(-12px);
  transform:         translateY(-12px); 
}
<br>
<br>
<a href="#" data-tooltip="This is a test">Test1</a>
<a href="#" class="tooltip" data-tooltip="THIS IS A TEST">Test2</a>

<img src="http://ctrlable.com/site/wp-content/uploads/2015/03/ctrlable_logo_white_cyan.png" class="tooltip" data-tooltip="THIS IS A TEST">
  

?

TylerH
  • 20,799
  • 66
  • 75
  • 101
ronluna
  • 9
  • 3
  • possible duplicate of [Does :before not work on img elements?](http://stackoverflow.com/questions/5843035/does-before-not-work-on-img-elements) – TylerH Apr 02 '15 at 22:46

1 Answers1

1

Image is a self closing tag so you can not add before or after content to it. wrap it in a span and add the tooltip there.

P.S other self closing tags are for example input, hr, br

Victor Radu
  • 2,262
  • 1
  • 12
  • 18