div {
margin: 0 auto;
position: relative;
outline: 1px solid red;
}
span {
border: 1px solid #000;
width: 230px;
display: inline-block;
box-sizing: border-box;
margin: 10px;
position: absolute;
}
12345678910
var show = document.getElementById("show");
var span = show.getElementsByTagName("span");
var clientWidth = document.documentElement.clientWidth; //获取页面视口宽度
var column = Math.floor((clientWidth - 150) / 250); //设置有多少列
show.style.width = column * 250 + "px"; //设置 show 宽度
var height = new Array(column); //记录每一列的高度
var i, j, min; //min 记录列高度最低的那一列的下标
for(i = 0; i < column; i ++) { //初始化每列高度为0
height[i] = 0;
}
for(i = 0; i < span.length; i ++) {
for(min = 0, j = 1; j < column; j ++) {
min = height[j] < height[min] ? j : min;
}
span[i].style.left = 250 * min + "px";
span[i].style.top = height[min] + "px";
height[min] += span[i].offsetHeight + 10;
}