我有一个各种尺寸的图像列表,我必须在一个页面中显示它们。我想以这样一种方式排列它们,即一行上的图像和下一行上的图像之间不显示空白。不管怎样,我可以使用 CSS 和 Javascript 实现这一点,??
以下是jsFiddle上的例子。
最佳答案
如果您愿意让图像彼此重叠,您可以使用客户端代码动态定位元素,使它们之间的间隙最小:
window.onload = function() {
var oList = document.getElementById("liParent")
var arrItems = oList.getElementsByTagName("li");
var totalWidth = parseInt(oList.style.width, 10);
var curLeft = 0;
var curTop = 0;
var arrHeights = new Array();
var colIndex = 0;
for (var i = 0; i < arrItems.length; i++) {
var oCurItem = arrItems[i];
var oImage = oCurItem.getElementsByTagName("img")[0];
oCurItem.style.position = "absolute";
var curWidth = oImage.offsetWidth;
var curHeight = oImage.offsetHeight;
if (curLeft + curWidth > totalWidth) {
curLeft = 0;
colIndex = 0;
}
if (colIndex < arrHeights.length)
curTop = arrHeights[colIndex];
oCurItem.style.left = curLeft + "px";
oCurItem.style.top = curTop + "px";
arrHeights[colIndex] = (curHeight + curTop);
curLeft += curWidth;
colIndex++;
}
}
更新的 jsFiddle:http://jsfiddle.net/zHxPT/2/
关于javascript - 按顺序随机排列图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4843064/