在电脑上看过了,也明白了 @
sigone 口中的交错布局, @
phzzy 所介绍的插件就是最简便最规范的解决方法了。对于ie8无效,建议检查是否禁用js等。
如果要自己再造个轮子,会js也不会太难。
得到ul容器的宽度,可算得一行可以容纳li的个数N,li设置左浮动,js找出第一行浮动元素中最高的个,得出高度heightM,这样我们就知道第二行元素浮动时的初始位置了,然后根据上一行同样位置(如同为行中的第二个)元素的高度和左上角的坐标(这个css里叫那个啥。。。)就可以算出第二行这个位置元素需要向上移动的距离了,margin-top:-xx;就可以了。如此类推。。。
这只是我自己的算法,没留意那个插件的算法。
没有js辅助,当前最新的CSS3标准也办不到,更别说ie这个垃圾浏览器了。
顺带一提:你可以看下CSS3的选择器,看能选择到什么,css不就是选择嘛。当遇到你要的选择器在你的客户浏览器不支持时,可以用js辅助,给元素加个class,当让,后台加就更简单了。
如这个jQuery辅助的奇数选择:
$("li:odd").addClass("li-odd");
就算浏览器不支持 li:odd 这样的高级选择器,我们也可以通过js把他们选到然后给这些元素加上一个"li-odd"。
==EOF==