首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >悬停时如何使文字和背景颜色出现在图像上?

悬停时如何使文字和背景颜色出现在图像上?
EN

Stack Overflow用户
提问于 2016-03-04 09:58:39
回答 5查看 76关注 0票数 0

我想要一个图像改变颜色(勃艮第)时,我悬停在它之上,并在同一时间显示文本(这与图像)。我希望文本和背景颜色能清晰地显示在图像上(仅覆盖图像),但我得到太多的屏幕覆盖勃艮第(如下图所示)。我制造了一个小提琴手,说明了我的问题所在。图像也需要响应,所以当悬停时,“悬停”效果总是覆盖图像。

https://jsfiddle.net/cardiffsteve/hnow7yxp/

代码语言:javascript
复制
<div id="Profile-Picture">
  <div class="colleague-image">
    <img width="200" height="200" alt="" src="http://lorempixel.com/100/100/cats/">
  </div>
  <div class="colleague-text">
    <div class="colleague-name">Mr Big </div>
    <div class="colleague-job-title">The Boss </div>
    <div class="colleague-qualifications">Top Cat</div>
  </div>
</div>

#Profile-Picture {
  position: relative;
}

.colleague-text {
  position: absolute;
  top: 10px;
  left: 20px;
  bottom: 0;
  right: 0;
  background: rgba(142, 1, 60, 0.72);
  color: #fff;
  visibility: hidden;
  opacity: 0;
  text-align: center;
}

#Profile-Picture:hover .colleague-text {
  visibility: visible;
  opacity: 1;
}

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-03-04 09:59:59

inline-block交给#Profile-Picture

代码语言:javascript
复制
#Profile-Picture {
  position: relative;
  display: inline-block;
}

这将使relative定位容器获取其内容的维度。

预览:

Fiddle: https://jsfiddle.net/x7cv536d/

另一种尝试是使文本的中间垂直和水平对齐:

代码语言:javascript
复制
#Profile-Picture {
  position: relative;
  display: inline-block;
}

.colleague-text {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(142, 1, 60, 0.72);
  color: #fff;
  visibility: hidden;
  opacity: 0;
  text-align: center;
}

.colleague-text .center {
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  left: 0; right: 0;
  width: 100%;
}

#Profile-Picture:hover .colleague-text {
  visibility: visible;
  opacity: 1;
}

img {
  display: block;
  line-height: 1;
}
代码语言:javascript
复制
<div id="Profile-Picture">
  <div class="colleague-image">
    <img width="200" height="200" alt="" src="http://lorempixel.com/100/100/cats/">
  </div>
  <div class="colleague-text">
    <div class="center">
      <div class="colleague-name">Mr Big </div>
      <div class="colleague-job-title">The Boss </div>
      <div class="colleague-qualifications">Top Cat</div>
    </div>
  </div>
</div>

预览:

我使用了另一个div作为支架,用于垂直对中。:)

票数 2
EN

Stack Overflow用户

发布于 2016-03-04 10:05:08

这对我起了作用:

代码语言:javascript
复制
#Profile-Picture {
  position: relative;
  display: inline-block;
}
.colleague-text {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: rgba(142, 1, 60, 0.72);
  color: #fff;
  visibility: hidden;
  opacity: 0;
  text-align: center;
}

编辑:设置顶部和左到0,并添加显示:内联块;到#配置文件-图片.

结果:单击以查看图像

票数 1
EN

Stack Overflow用户

发布于 2016-03-04 10:13:41

只需将display: table;交给#Profile-Picture就可以实现您的期望。

transition:.6s all;使悬停效果很好。

如果图像是有反应的,或者它的大小变化,它的工作原理是完美的。

小提琴

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35793003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档