html - 如何在图像悬停时创建深色淡入淡出+文字?

标签 html css opacity

在尝试获得某种效果时遇到困难:

我有一张图片。我想将鼠标悬停在它上面。它应该变黑并弹出一些文本。

Here is an example

例子^

执行此操作最简单/最简单的设置是什么?最好只有 HTML 和 CSS

注意:该元素需要在 CSS 中设置 background-image

    .thumbnail {
    background-image: url(potato.jpeg);
    height: 400px;
    width: 450px;
}

.thumbnail:hover {
    background: rgb(0, 0, 0);
    height: 400px;
    width: 450px;
    opacity: 0.5;
    transition: 0.8s;
}

\

<!DOCTYPE html>
<html>

<head>

<meta charset="UTF-8">
<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<div class="thumbnail"> </div>

</body>

</html>

最佳答案

您应该为叠加层使用一个单独的元素,在我的示例中是一个子元素。由于 opacity: 0

,只有悬停状态可见,常规状态不可见

.thumbnail {
  background-image: url(https://placehold.it/450x400/fa0);
  height: 400px;
  width: 450px;
}
.overlay {
  background: rgb(0, 0, 0);
  height: 400px;
  width: 450px;
  opacity: 0;
  transition: 0.8s;
}
.thumbnail:hover .overlay {
  opacity: 0.5;
}
<div class="thumbnail"><div class="overlay"> </div> </div>

当涉及到根本不应该有不透明度的文本时,它会变得有点复杂:在下面的示例中,覆盖元素具有半透明的背景颜色,并且当 opacity: 1 parent 悬停。这样文本在悬停时没有不透明度,但由于其自身的不透明度设置为 0.5,背景仍然有:

.thumbnail {
  background-image: url(https://placehold.it/450x400/fa0);
  height: 400px;
  width: 450px;
}
.overlay {
  background: rgba(0, 0, 0, 0.5);
  height: 400px;
  width: 450px;
  opacity: 0;
  transition: 0.8s;
  font-size: 36px;
  color: #fff;
}
.overlay:hover {
  opacity: 1;
}
<div class="thumbnail"><div class="overlay">SOME TEXT</div></div>

关于html - 如何在图像悬停时创建深色淡入淡出+文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52562579/

相关文章:

jquery - 在 WordPress 主题中添加 Bootstrap 似乎会覆盖导航样式

html - 使用 CSS 向文本添加特定渐变

css - watir-webdriver 可以单击 css 背景图像或浏览器中的任意位置吗?

html - 我的标题和导航 div 之间有一个未知的间隙/空间。我试过查找答案,但似乎没有任何解决方法

jQuery - 从一个元素获取颜色并将其用于另一个具有不透明度的元素

javascript - 所选值未出现在 angular-ui-select 中

java - 从 html 运行 java

html - Doctype 导致底部边距显示在图像下方

html - 为什么我的 img 悬停不起作用?

html - Internet Explorer 中的 CSS rgba