function waterFall(element,space,children) { if(!element) return ; space = space || 30 ; children = children || "div" ; //前三行默认设置,分别为外框元素id,上下留白,子元素标签名(子元素标签名使用太多或出错) var wrap = document.getElementById(element) ; var water = wrap.getElementsByTagName(children) ; var spaceWidth = water[0].offsetWidth ; //获取子元素宽度(offsetWidth会获取块级元素的padding和border) var wrapWidth = wrap.offsetWidth ; //获取外框元素宽度 var colNum = Math.floor(wrapWidth/spaceWidth) ; //计算获取外框元素所能承受列数 var padding = Math.floor((wrapWidth - colNum*spaceWidth)/(colNum-1)) ; //计算外框元素剩余宽度并计算左右留白 var column = new Array() ; var length = water.length ; var maxHeight = 0 ; for(var i=0;i maxHeight) maxHeight = column[i].top ; } wrap.style.height = maxHeight+"px" ; //给外框元素赋值以防止出现子元素溢出外框元素 }