CSS悬停使用Outline无法正常工作

时间:2013-07-19 11:46:02

标签: html css overlay border outline

我正在尝试使用css将大纲覆盖在我的图像上但是大纲没有显示出来。如果我用背景颜色替换轮廓它可以正常工作,但它不能实现我想要的框架效果。我也尝试使用边框,但增加了div的大小,所以它也不起作用。我需要叠加div为100%高度和宽度,因为图像大小是动态的。

<figure class="visual-thumbnail" style="overflow:hidden;position:relative;">
<div class="img-info"></div>

        <a href="http://innovationinhr.com/apploi/?p=351" class="thumbnail">
        <img width="326" height="434" src="http://innovationinhr.com/apploi/wp-content/uploads/2013/07/unknown-326x434.jpeg" class="attachment-visual-thumbnail wp-post-image" alt="Sharif">        



        </a>
    </figure>


figure{ display:block;overflow: hidden;
position: relative;width:326px;height:435px;}


.img-info {
outline: solid black 25px;
background-color: black;
left: 0;
top: 0;
opacity: 0;
position: absolute;
filter: alpha(opacity = 0);
width: 100%;
z-index: 1000;
height: 100%;
}
.visual-thumbnail:hover .img-info{
opacity:.5;
}

http://jsfiddle.net/P4nEK/1/

轮廓不会出现的任何原因?

2 个答案:

答案 0 :(得分:0)

轮廓是不可见的,因为轮廓出现在元素的外部。在这种情况下,由于元素(div)与父(figure)一样大,因此它会出现在figure之外。但figureoverflow:hidden

解决方案:从图中删除overflow:hidden。或者将div置于其轮廓落在figure内的位置。

答案 1 :(得分:0)

正如李先生所指出的那样,主要问题在于你的数字是overflow:hiddenThis fiddle显示了您想要工作的基本想法。

另外注意,z-index仅影响同一上下文中的元素。 Here是一篇非常好的文章。所以我认为你真正尝试做的是把另一个div放在图像下面并让它在悬停时显示边框。为了做到这一点,必须在相同的上下文中绘制它们,这意味着它们都需要具有position属性。这是一个工作的小提琴:http://jsfiddle.net/P4nEK/6/