悬停时如何在图像上显示文字?

Wil*_*yan 58 html css hover

我在悬停在图像上时试图显示描述.我已经用不太理想的方式完成了它,使用图像精灵和徘徊在这里:http://willryan.us/design.html我希望它看起来与我拥有它完全一样,但使用真实文本代替图片.

我尝试了一些不同的东西,但我似乎无法弄清楚如何做到这一点.我只是尝试使用HTML和CSS,但我不确定这是否可行.

请随意在我的代码中浏览,我会粘贴我认为相关的内容.

HTML

div#projectlist {
  width: 770px;
  margin: 0 auto;
  margin-top: 20px;
  margin-bottom: 40px;
}

div#buzzbutton {
  display: block;
  float: left;
  margin: 2px;
  background: url(content/assets/thumbnails/design/buzz_sprite.jpg) 0 0px no-repeat;
  width: 150px;
  height: 150px;
}

div#buzzbutton:hover {
  background: url(content/assets/thumbnails/design/buzz_sprite.jpg);
  width: 150px;
  height: 150px;
  background-position: 0 -150px;
}

div#slinksterbutton {
  display: block;
  float: left;
  background: url(content/assets/thumbnails/design/slinkster_sprite.jpg) 0 0px no-repeat;
  width: 150px;
  height: 150px;
  margin: 2px;
}

div#slinksterbutton:hover {
  background: url(content/assets/thumbnails/design/slinkster_sprite.jpg);
  width: 150px;
  height: 150px;
  background-position: 0 -150px;
}
Run Code Online (Sandbox Code Playgroud)
<div id="projectlist">
  <div id="buzzbutton">
    <a href="buzz.html" title=""><img src="content/assets/thumbnails/transparent_150x150.png" alt="" /></a>
  </div>

  <div id="slinksterbutton">
    <a href="slinkster.html" title=""><img src="content/assets/thumbnails/transparent_150x150.png" alt="" /></a>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

ban*_*aka 97

这很简单.将图像和"在悬停时出现"描述包装在具有相同图像尺寸的div中.然后,使用一些CSS,命令描述在悬停该div时出现.

/* quick reset */
* {
  margin: 0;
  padding: 0;
  border: 0;
}

/* relevant styles */
.img__wrap {
  position: relative;
  height: 200px;
  width: 257px;
}

.img__description {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(29, 106, 154, 0.72);
  color: #fff;
  visibility: hidden;
  opacity: 0;

  /* transition effect. not necessary */
  transition: opacity .2s, visibility .2s;
}

.img__wrap:hover .img__description {
  visibility: visible;
  opacity: 1;
}
Run Code Online (Sandbox Code Playgroud)
<div class="img__wrap">
  <img class="img__img" src="http://placehold.it/257x200.jpg" />
  <p class="img__description">This image looks super neat.</p>
</div>
Run Code Online (Sandbox Code Playgroud)

一个不错的小提琴:https://jsfiddle.net/govdqd8y/

  • 有没有办法使悬停的文本垂直居中? (2认同)

mrp*_*opo 94

在HTML中,尝试将要出现的文本放在代码的标题部分中:

<a  href="buzz.html" title="buzz hover text">
Run Code Online (Sandbox Code Playgroud)

您也可以对图像的替代文字执行相同操作.

  • 这是最简单的解决方案,但不幸的是,texto只在一秒钟之后出现. (3认同)

小智 8

您还可以在图像标记中使用title属性

<img src="content/assets/thumbnails/transparent_150x150.png" alt="" title="hover text" />
Run Code Online (Sandbox Code Playgroud)


adi*_*ya 6

这是我用来使文本出现在悬停时的方法:

* {
  box-sizing: border-box
}

div {
  position: relative;
  top: 0px;
  left: 0px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  overflow: hidden;
  text-align: center
}

img {
  width: 400px;
  height: 400px;
  position: absolute;
  border-radius: 50%
}

img:hover {
  opacity: 0;
  transition:opacity 2s;
}

heading {
  line-height: 40px;
  font-weight: bold;
  font-family: "Trebuchet MS";
  text-align: center;
  position: absolute;
  display: block
}

div p {
  z-index: -1;
  width: 420px;
  line-height: 20px;
  display: inline-block;
  padding: 200px 0px;
  vertical-align: middle;
  font-family: "Trebuchet MS";
  height: 450px
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <img src="https://68.media.tumblr.com/20b34e8d12d4230f9b362d7feb148c57/tumblr_oiwytz4dh41tf8vylo1_1280.png">
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing <br>elit. Reiciendis temporibus iure dolores aspernatur excepturi <br> corporis nihil in suscipit, repudiandae. Totam.
  </p>
</div>
Run Code Online (Sandbox Code Playgroud)