在任何背景上突出显示图像(悬停时)

Posted

技术标签:

【中文标题】在任何背景上突出显示图像(悬停时)【英文标题】:Highlight images (on hover) on any background 【发布时间】:2014-06-21 13:40:01 【问题描述】:

当鼠标指针悬停在某些图像上时,希望点亮某些图像(增加亮度)是很常见的。

我知道的一种适用于白色背景的技术是减少悬停时的不透明度,这实际上通过让更多的白色通过来增加亮度。问题显然是它只能在白色背景上工作。

是否有任何 CSS 可以添加到我的图像中

一个。为完全适合的图像添加白色背景,以便在任何颜色背景上产生相同的点亮效果,或

b.无需添加白色背景或完全不使用不透明度即可实现相同的效果

【问题讨论】:

(a) 您可以使用绝对定位的伪元素来做到这一点,并且 (b) 在不添加背景的情况下,您将不得不使用 filter 来操作图像,尽管仅支持到目前为止基于 WebKit 的浏览器。 【参考方案1】:

用 div 封装你的图片

<div class="brightness">
    <img  src="test.jpg">
</div>

并应用好的css:

.brightness 
    background-color: white;
    display: inline-block;


.brightness img:hover 
    opacity: .5;

小提琴:http://jsfiddle.net/5yush/

【讨论】:

【参考方案2】:
image:hover  filter: brightness(50%); 

【讨论】:

看起来这只适用于基于 webkit 的浏览器,而不是跨浏览器解决方案。 是的,如果 Firefox 和 IE 支持,这将是一个很棒的解决方案。还是谢谢你 哎呀,忘记了。我的错。【参考方案3】:

将此类添加到任何图像

.image-hover-highlight 
    -webkit-transition: all 0.50s;
    transition: all 0.50s;
    &:hover 
        border: 1px solid gray;
        filter: brightness(130%);
        -webkit-filter: brightness(130%);
        -moz-filter: brightness(130%);
        -o-filter: brightness(130%);
        -ms-filter: brightness(130%);
        -webkit-transition: all 0.50s;
        transition: all 0.50s;
    

【讨论】:

【参考方案4】:

这样的东西对你有用吗? http://jsfiddle.net/omegaiori/teAP7/1/

为了让这个工作,你必须将你的图像包装在一个 div 中

    .img-cont 
    background:white;
    box-sizing:border-box;
    -moz-box-sizing:border-box;
    -webkit-box-sizing:border-box;
    margin:30px auto 0;
    width:300px;

并将您的图像 width 设置为 100%

您可以根据需要更改padding 的值,由于他的box-sizing 属性,框将始终具有相同的大小

【讨论】:

谢谢,但很遗憾我需要遵循网站的主题规范

以上是关于在任何背景上突出显示图像(悬停时)的主要内容,如果未能解决你的问题,请参考以下文章

如何在鼠标悬停时突出显示图像地图的某些部分?

悬停在特定国家/地区时,在空白世界地图上突出显示国旗

悬停时更改 SVG 填充和文本突出显示颜色

使用 CSS 突出显示悬停时的图像区域

IntelliJ:在悬停时突出显示变量的类型[重复]

在鼠标悬停时突出显示L.divIcon或在Leaflet地图中以编程方式突出显示