当多次使用 css 类时,Javascript 无法正常工作?

发布于 2024-10-31 10:36:41 字数 410 浏览 1 评论 0原文

之前,我询问如何在 div 内居中对齐图像(带动态宽度),有人用以下代码回复:

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

它工作正常。但是,当我尝试对另一个图像使用相同的类时,另一个图像不再垂直居中:

http://jsfiddle。 net/b4Bbd/

你看,现在,50x50 黑色图像比应有的稍高。我注意到只有第一张图像正确对齐。如果我之后添加具有不同宽度和高度的其他图像(使用同一类),它们将会错位。

有人可以帮我找到问题吗,因为我对 javascript 不太熟悉。

Previously, I asked how to center align an image (w/ dynamic width) within a div and someone replied with this code:

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

It's working correctly. However, when I try using the same class for another image, the other image is no longer vertically centered:

http://jsfiddle.net/b4Bbd/

You see, now, the 50x50 black image is slightly higher than it should be. I noticed that only the first image gets aligned correctly. If I add other images with a different width and height (using the same class) after that, they will be misaligned.

Could somebody help me find the problem as I'm not really familiar with javascript.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

骄兵必败 2024-11-07 10:36:41

您需要包装 JavaScript 来对所有匹配元素执行所有操作,而不是计算一个元素的高度并应用于所有元素:

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

You need to wrap the JavaScript to do everything for all matching elements, instead of calculating the height for one and applying to all:

$('div.container_img img').each(function() {
    var $img = $(this);
    var h = $img.height();
    $img.css('margin-top', +h / -2 + "px");
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文