请原谅这是一个相当基本的问题。我已经在谷歌和其他地方搜寻过,并且找不到适用于我的解决方案。
我正在使用以下标记生成图片库。
<div class="gallery">
<a class="galleryimg">
<img>
</a>
....
</div>
根据图库中的图像数量重复.galleryimg
。它也是左边浮动的。
我想创建一个概述所选图像的:hover
效果。我尝试过使用边框(弄乱布局),轮廓(原理上听起来很完美),以及插入框阴影(在图像下方渲染)。
大纲非常接近我想要实现的目标。但右侧和底部轮廓被漂浮在其上方的相邻图像遮挡。
所以我的问题是:如何在链接图像库中创建悬停边框/轮廓效果?
我真的很感激别人如何解决这个问题。谢谢!
修改
图像相邻,两者之间没有空白区域。
答案 0 :(得分:2)
你可以像这样使用简单的css技巧
<强> CSS 强>
#example-one a img, #example-one a { border: none; overflow: hidden; float: left; }
#example-one a:hover { border: 3px solid black; }
#example-one a img{width:100px;height:50px;}
#example-one a:hover img { margin: -3px;}
了解更多信息
答案 1 :(得分:1)
检查出来:
可能是理想的效果。您将体验到图像的轻微更改,因为它会使自身变小以允许边框。但请告诉我。这只是一个快速修复。
--- --- EDIT
是使用负边距的第二个版本,这看起来没问题,但图像重叠了一点。
查看链接:http://css-tricks.com/examples/InnerBorderImages/
--- --- EDIT2
http://jsfiddle.net/hMNZE/3/是最好的
--- --- EDIT3
.gallery {
width:100%;
height:100%;
padding:10px;
}
.galleryimg {
float:left
}
.galleryimg img {
z-index:-10;
}
.galleryimg img:hover {
margin:-2px;
border:2px solid blue;
z-index:9999;
}
答案 2 :(得分:0)
如果您使用box-sizing
属性(自IE8
起支持),您可以在:hover
上添加边框而不会弄乱布局
.galleryimg {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width : 100px;
float : left;
}
.galleryimg:hover {
border : 3px gray solid;
}
有关此媒体资源的详情,请参阅http://paulirish.com/2012/box-sizing-border-box-ftw/
答案 3 :(得分:0)
http://jsfiddle.net/Vvr7C/ 诀窍是在.gallery上添加填充,这样你就可以在画廊边缘的图像上看到轮廓:
.gallery {padding:2px}
.galleryimg:hover img {outline: red solid 2px}
答案 4 :(得分:0)
如果您使用 box-shadow &amp;它低于另一个图像,然后像这样写:
.gallery img:hover{
padding:0;
box-shaow:0 0 0 2px red;
z-index:1;
}
.gallery img{position:relative;}
答案 5 :(得分:0)
如果上面的问题得到解答,那很好。如果没有,听起来你可能需要在图像和周围的其他物体之间留出一些余量。你说它被遮盖了。它可能只需要2px左右的保证金就可以让它不受影响。
答案 6 :(得分:0)
嗨,你可以通过 CSS3 * box-shadow *属性轻松完成这件事: -
box-shadow: inset 0px 0px 0px 3px rgba(000,000,000,0.9);
请参阅演示以便更好地理解: - http://jsbin.com/upedel/5/edit
更新的蚂蚁
请参阅更新的演示: - http://jsbin.com/upedel/10/edit