【问题标题】:Flickering on hover over div将鼠标悬停在 div 上闪烁
【发布时间】:2014-05-09 16:00:46
【问题描述】:

我正在尝试在将鼠标悬停在 div 上时使用具有一定不透明度的背景颜色。但是一旦我将鼠标悬停在它上面,我就会在颜色上得到闪烁效果。而我悬停的元素工作正常。 我的代码和css如下:

    <div class="flip-menu">
            <section class="flip-item-wrap">
                <img class="fake-image" src="http://lorempixel.com/500/500/food/11" alt=""><!-- this image will add height to parent element -->
                <input type="checkbox" class="flipper" id="a">
                <label for="a" class="flip-item">
                    <figure class="front"><img class="img_hover" src="http://lorempixel.com/500/500/food/1" alt=""></img>

                    </figure>
                    <figure class="back">
                        <img src="http://lorempixel.com/g/500/500/food/1" alt=""></img>
                        <div class="flip-item-desc">
                            <h4 class="flip-item-title">Lorem ipsum dolor</h4>
                            <p>Dolor sit amet, consectetur adipiscing elit. Vestibulum posuere turpis lacus.</p>
                        </div>
                    </figure>
                </label>
                  <div  style="background: none repeat scroll 0 0 #FFFFFF;
                                color: #000000;
                                left: 1px;
                                opacity: 0.8;
                                padding: 4px;
                                 position: absolute;
                                text-transform: uppercase;
                                top: 162px;
                                width: 182px;
                                z-index: 9999;
                                left: 0px;
                                overflow:hidden;" class="hover_div"> 
                     hhh
                  </div>
            </section>
</div>

        .img_hover:hover{
     border:1px solid #888888!important;
    }
     .hover_div{
    display:none;

    }

     .flip-item-wrap :hover + div{
     display: block;
     cursor:pointer;

    } 

【问题讨论】:

  • 请为您的代码创建一个小提琴。解决您的问题会更容易。
  • 更准确地说,闪烁效果是什么意思?
  • .img_hover:hover{ css 中将 border:1px solid #888888 !important; 更改为 outline:1px solid #888888 !important;

标签: html css


【解决方案1】:

我想我明白你想要做什么。这里出现了混淆,因为在测试您的代码时,图像边框上有明显的闪烁,这就是 Yasser 试图修复的问题——他做到了。但我认为你指的是别的东西。我建议从头开始并清理您的代码,这将使事情变得更容易 - 仅此一项可能会解决您的问题。我做了一个小提琴来完成我相信你所追求的。

这应该会让你朝着正确的方向开始。

<style>
    .main {
        width:500px;
        height:500px;
    }
    .cover {
        position:absolute;
        background:#ccc;
        opacity:.5;
        width:500px;
        height:500px;
        display:none;

    }
    .main:hover .cover {
        display:block;
    }
</style>

<div class="main">
    <div class="cover">&nbsp;</div>
    <img class="img_hover" src="http://lorempixel.com/500/500/food/1" alt="">
</div>

JSFiddle

【讨论】:

    【解决方案2】:

    我假设闪烁是边框出现并稍微动摇布局。添加这行 css 并告诉我这是否适合您。

    .img_hover{
         border:1px solid #fff !important;
     }
    

    或者,您应该添加一个 jsfiddle,以便我们可以更好地帮助您。

    编辑:

    更好的方法是这样做 - 谢谢Ruddy

    .img_hover:hover {
        outline:1px solid #888888!important;
    }
    

    【讨论】:

    • 应该解释你在这里做什么......(设置与背景颜色相同的边框,因此当悬停发生时,1px 边框不会移动)。另一种方法是将border 更改为outline
    • 我在悬停时添加了边框,但它仍然显示相同。
    • @Ruddy 完全同意你的看法。
    • @user2053590 使用outline demo 并使用此答案demo
    • +1 因为虽然我认为您没有解决 OP 的问题,但您看到的可能与我最初看到的相同并解决了它 - 边界问题。我觉得这个问题不是很清楚。
    猜你喜欢
    • 2013-07-09
    • 2014-10-21
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2012-01-21
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多