这个是去年做过的一个项目中的算法,个人感觉还可以,所以拿出来分享下. 背景:头部导航二级导航有些内容太长,一列的话太过难看,就要分成两列,要做到按块尽量均分,排列顺序没有限制. 原理: 1.把各个二级导航做为一个独立的,内部分成多个块,算出各块的高度,升序排列. 2.求出各块的总高度和,除2得到平均最高的高度. 3.从块的高度最高的开始,如果高度大于平均高度,则这块放入A边,其他的分至B边. 4.如果小于这个高度,则平均高度变为减去最高高度的值. 5.取剩下最高的高度与平均高度比,如果高度大于平