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" ; //给外框元素赋值以防止出现子元素溢出外框元素 }