html - 获取图像顶部的背景颜色

标签 html css

当我将鼠标悬停在图像上时,我试图在图像上创建一个叠加层。 我用来创建叠加层的颜色不会覆盖图像。它围绕着图像,我希望它位于图像的顶部。 我不确定我哪里错了。 当你将鼠标悬停在它上面时,它也会做这种奇怪的跳跃 Action 。

HTML

<div class="overlay">
  <div class="overlay2"></div>
    <figure class="box-img">
      <img src="http://i.imgur.com/PHKC3T9.jpg" alt="" />
    </figure>
  </div>

CSS

.overlay:hover{
background: red;
position: absolute;
opacity: 0.7;
}

.box-img img{
position: relative;
}

这是一个jsfiddle:JSFIDDLE

最佳答案

大的“边框”是因为 figure 元素的默认边距和填充,根据 W3,这些是常见规范:

figure {
display: block;
margin-top: 1em;
margin-bottom: 1em;
margin-left: 40px;
margin-right: 40px;
}

我总是喜欢在样式表开始时自己进行完全重置:

*, *:before, *:after {
margin: 0;
padding: 0;
}

在代码的当前形式中,覆盖层不会显示在顶部,因为颜色将位于背景中。伪元素可能会执行您想要的操作(使用直接方法更新了此处的代码):

http://jsfiddle.net/j0qfhr9e/

<figure class="box-img">
  <img src="http://i.imgur.com/PHKC3T9.jpg" alt="" />
</figure>

.box-img {
display: inline-block;
position: relative;
line-height: 0;
}

.box-img:hover:after {
content: '';
width: 100%;
height: 100%;
background: red;
position: absolute;
top: 0;
left: 0;
opacity: 0.7;
}

初稿的完整性,更接近原始标记:

http://jsfiddle.net/rLu2c4kr/

关于html - 获取图像顶部的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29722892/

相关文章:

javascript - 使用 jQuery 更新父级之外的所有内容的 CSS 颜色

php - azure 托管 Web 应用程序上的 html 联系表单

javascript - 使用 Base64 图像时 Canvas.ToDataUrl 存在安全违规

php - Bootstrap Popover 临时调整表的大小

php - 如何在不影响较小图像的情况下使网页上的图像适合最大宽度?

javascript - 显示默认文本的评论框文本区域在用户聚焦时消失

html - 如何修复表倒置

javascript - 弹出窗口中的 jQuery 图片库

css - Chrome 的站点可视化问题

html - 从 float 表格标题中删除边距和填充