[英]div gets pushed down for apparently no reason
我有一个5格的简单网格,每个格包含一个图像。
为什么最后一个div(具有不同的图像)具有偏移量? 它没有明显的原因被推下。
这里的例子。
的CSS
.thumb-container {
border: 1px solid #e5e5e5;
padding: 15px;
margin-right: 15px;
margin-bottom: 15px;
width: 130px;
height: 130px;
display: inline-block;
}
的JavaScript
$.when( loadImageSet(imageURLs) ).then(function(data){
var imageSet = [];
$.each(data, function(index, value){
imageSet.push(value);
})
for (var i = 0; i < imageSet.length; i++) {
var thumbContainer = $('<div>',
{class: 'thumb-container'});
img = resizeImage(imageSet[i], 100);
thumbContainer.append(img);
$('.box').append(thumbContainer);
}
});
编辑
我知道了,我需要将vertical-align: top
为.thumb-container或将display:block
设置为img。 但是仍然不明白为什么会这样。
img {display:block; }
只需添加此行。
关于D。
由于您的元素是inline-block
元素,因此默认情况下它们将与基线垂直对齐。 由于其中一个元素的大小与其他元素不同,这会导致框显示得更低。 通过将它们设置为vertical-align:top
可以解决此问题
通过向图像添加display:block
,它将删除在图像之后添加的多余空间,从而使所有.thumb-container
元素再次具有相同的高度
如果您不想更改CSS,则另一种解决方案是添加一个固定高度并在.thumb-container内部的div。
不太确定为什么,但是改变图像大小的javascrip也会改变盒子的位置。
function resizeImage(image, size){
var w = image.width;
var h = image.height;
// resize width and make height proportional
var nh = size;
var nw = w*size/h;
if (nw > 100)
{
nw = 100;
}
// if height > size, resize height and make width proportional
if (nh > size){
nh = size;
nw = w*size/h;
}
image.width = nw;
image.height = nh;
return image;
}
将调整大小功能更改为该功能并可以,不是最好的,但是可以。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.