html - 调整图像大小的颜色叠加(悬停)

标签 html css

我想在图像上叠加颜色。现在这很简单,但是考虑到图像的边框在悬停时会发生变化,事实并非如此(对我来说,因为我对 CSS 还很陌生)。我不知道这是否可以通过 CSS 实现,或者您是否必须使用 JavaScript(或 JQuery)?

到目前为止,我已经试过了:将图像放在 <div> 中,在悬停时动态调整大小。这工作得很好,但因为我要有一个黑暗的背景,所以有一个小问题。图像周围始终有一个小于一个像素的最小“边框”:

它几乎看不见,但让我很烦。我已经尝试将外部 div 变小,但这会留下未褪色图像和白色边框的偏心线。

在这里看看我的代码(没什么特别的,但以防万一):JSFiddle

有什么方法可以解决这个问题吗?我还没有学过很多 Javascript,所以我宁愿用 css 而不是 js,但是如果没有其他方法......

最佳答案

我更新了一些代码;见http://jsfiddle.net/GR8Vq/ :

* {
    margin: 0;
    padding: 0;
}

body {
    background: #000;
}

.imgholder {
    position: relative; // added
    margin: 5px;
    // background: #fff;
    float: left;
    height: 200px;
    // border-radius: 200px / 110px;
    transition: border-radius 0.3s ease-out;
}

.imgholder img,
.imgholder:after {
    border-radius: 200px / 110px;
    transition: 0.3s ease-out;
}

.imgholder:after {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background: rgba(255,255,255,.3);
    opacity: 0;
}

.imgholder:hover:after { opacity: 1; }

.imgholder:hover{
    border-radius: 20px;
}

.imgholder:hover img,
.imgholder:hover:after {
    border-radius: 20px;
}

我使用 :after 选择器在图像顶部添加一个图层,而不是图像支架上的 border-radius。应该这样比较好吧?

关于html - 调整图像大小的颜色叠加(悬停),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20132124/

相关文章:

html - 视频元素未显示在页面上

html - 通过 CSS 截断动态宽度的文本(响应式)

javascript - 使用CSS忽略div元素下nav的显示

html - 快速将高分辨率图像渲染为缩略图

javascript - 我可以在表格中包含表格吗?我正在研究 AngularJS

css - 导航栏未显示在网站的第二页上

html - 紧贴图片周围的 div

html - CSS背景不透明度

html - 在 div 上设置最小高度,但使所有 div 的高度相同

javascript - 通过 jQuery 附加的 HTML 不会接受点击事件