如何使用 CSS 在悬停时向图像添加工具提示

Posted

技术标签:

【中文标题】如何使用 CSS 在悬停时向图像添加工具提示【英文标题】:How to add tooltip to image on hover with CSS 【发布时间】:2016-08-23 14:47:35 【问题描述】:

我有三张图片,在悬停时它们使用 :hover 在 css 中增加大小。当用户将鼠标悬停在图像上时,我还希望显示带有图像描述的工具提示(我也应该能够定位工具提示)。

HTML

<div class="bottle-container">
<div class="click-to-top"><img src="image-1.png"  />Tooltip text</div>
<div class="click-to-top" style="z-index:5;"><img src="image-2.png"  /></div>
<div class="click-to-top last"><img src="image-3.png"  /></div>
</div>

CSS

container
max-width:600px;
margin:0 auto;
min-height:450px;


div.click-to-top 
display:inline-block;
position:relative;
max-width:160px;


div.click-to-top:hover
z-index:10;


div.click-to-top img
-webkit-transition: all 0.8s;
moz-transition: all 0.8s;
transition: all 0.8s;
width:130px;


div.click-to-top img:hover
width:140px;
z-index:10;

【问题讨论】:

这个answer 必须是最好的,因为它使用了内置的 html 属性。 【参考方案1】:

您可以将文本包装成&lt;span&gt;&lt;/span&gt; 并在父:hover 上显示

CSS

div.click-to-top span 
  display: none;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: #333;
  color: #fff;


div.click-to-top:hover span 
  display: block;

HTML

<div class="click-to-top">
  <img src="http://lorempicsum.com/futurama/350/200/1"  />
  <span>Tooltip text</span>
</div>

Fiddle

【讨论】:

【参考方案2】:

看看这个代码笔http://codepen.io/mlegg10/pen/reqGMZ

/* `border-box`... ALL THE THINGS! */
html 
  box-sizing: border-box;


*,
*:before,
*:after 
  box-sizing: inherit;


body 
  margin: 64px auto;
  text-align: center;
  font-size: 100%;
  max-width: 640px;
  width: 94%;


a:hover 
  text-decoration: none;


header,
.tooltip,
.tooltip p 
  margin: 4em 0;
  text-align: center;


/**
 * Tooltip Styles
 */

/* Add this attribute to the element that needs a tooltip */
[data-tooltip] 
  position: relative;
  z-index: 2;
  cursor: pointer;


/* Hide the tooltip content by default */
[data-tooltip]:before,
[data-tooltip]:after 
  visibility: hidden;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);
  opacity: 0;
  pointer-events: none;


/* Position tooltip above the element */
[data-tooltip]:before 
  position: absolute;
  bottom: 150%;
  left: 50%;
  margin-bottom: 5px;
  margin-left: -80px;
  padding: 7px;
  width: 160px;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  background-color: #000;
  background-color: hsla(0, 0%, 20%, 0.9);
  color: #fff;
  content: attr(data-tooltip);
  text-align: center;
  font-size: 14px;
  line-height: 1.2;


/* Triangle hack to make tooltip look like a speech bubble */
[data-tooltip]:after 
  position: absolute;
  bottom: 150%;
  left: 50%;
  margin-left: -5px;
  width: 0;
  border-top: 5px solid #000;
  border-top: 5px solid hsla(0, 0%, 20%, 0.9);
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  content: " ";
  font-size: 0;
  line-height: 0;


/* Show tooltip content on hover */
[data-tooltip]:hover:before,
[data-tooltip]:hover:after 
  visibility: visible;
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);
  opacity: 1;
<div class="tooltip">
    <p><button data-tooltip="I’m the tooltip text.">I’m a button with a tooltip</button></p>
</div>

【讨论】:

以上是关于如何使用 CSS 在悬停时向图像添加工具提示的主要内容,如果未能解决你的问题,请参考以下文章

如何使图像在悬停css上旋转

移动后如何使文本出现在居中图像旁边?

如何使图像悬停在css中?

当您使用 javascript 或 jquery 将鼠标悬停时,如何使图像或按钮发光?

Html和CSS如何使具有悬停效果的图像成为超链接

使用css将鼠标悬停在按钮上时如何更改站点背景图像?