2011-04-12 91 views
1

以前,我问如何中心一个div内排列的图像(W /动态宽度),并使用此代码的人回答说:当css类被多次使用时,Javascript无法正常工作?

http://jsfiddle.net/WDzx4/6/

它的正常工作。然而,当我尝试使用同一类的其他图像,其他的图像不再垂直居中:

http://jsfiddle.net/b4Bbd/

你看,如今,50×50的黑色图像略高于它应该是。我注意到只有第一个图像被正确对齐。如果在此之后添加具有不同宽度和高度的其他图像(使用相同的类),则它们将错位。

有人可以帮我找到问题,因为我不熟悉JavaScript。

回答

4

你需要用JavaScript的尽所有匹配的元素,而不是计算高度为一个适用于所有:

$('div.container_img img').each(function() { 
    var $img = $(this); 
    var h = $img.height(); 
    $img.css('margin-top', +h/-2 + "px"); 
}); 
+0

+1,以最快的枪! – 2011-04-12 03:29:27

+0

非常感谢! :d – catandmouse 2011-04-12 04:08:00