2013-12-20 49 views
0

即时执行此项目的大学。我目前面临一个小问题,但仍令人不安。IMG在css图片墙上闪烁

链接网站:http://haw.finekost.com/ws2013/PP_HATE_SITE/

CSS:

.box { 
    filter: grayscale(1); 
    float: left; 
    height: 0; 
    margin: 0; 
    moz-filter: grayscale(1); 
    ms-filter: grayscale(1); 
    o-filter: grayscale(1); 
    opacity: 0.5; 
    padding-bottom: 20%; 
    position: relative; 
    webkit-filter: grayscale(1); 
    width: 20%; 
} 

.box:hover { 
    cursor: pointer; 
    moz-filter: all .5s ease-in-out; 
    opacity: 1; 
    webkit-filter: grayscale(0); 
    webkit-transition: all .5s ease-in-out; 
} 

img { 
    height: 100%; 
    left: 0; 
    position: absolute; 
    width: 100%; 
} 

的箱子通过PHP的产生。 当我将它们悬停时,图像框的大小会改变(仅为1px)。我真的不知道他们为什么这么做。希望有人能帮助我

+1

在Firefox上OSX他们不这样做实际上,在Chrome中他们做 –

回答

0

这是由于您的盒子上的webkit转换样式规则设置发生的:悬停选择器。

如果你把它拿出来,那么就没有'闪烁'。因为它不会在Firefox中发生,因为您没有设置诸如-moz-transition之类的firefox供应商属性。

为什么在这种情况下需要转换?

+0

哦,如果你确实需要webkit过渡到适当的过渡到图片。删除'全部',它应该工作正常。 –

0

在您的网站上使用.box的宽度为20%。看起来这会导致1px的差距。但是,这可以通过使用width: 20vw来解决.boxvw是以%为单位的视口宽度,移除了1px边框。

所以使用:

.box { 
    filter: grayscale(1); 
    float: left; 
    height: 0; 
    margin: 0; 
    moz-filter: grayscale(1); 
    ms-filter: grayscale(1); 
    o-filter: grayscale(1); 
    opacity: 0.5; 
    position: relative; 
    webkit-filter: grayscale(1); 
    padding-bottom: 20vw; 
    width: 20vw; 
}