2010-11-07 75 views
0

我有从php生成的列表长度各不相同。我怎么能够在一定的高度休息时间列出这张名单,并开始填写一个新的专栏,而不是留在一个长栏中?以设定的时间间隔将列表中断到新列

如果列表不好,我可以用div来做,但我无法弄清楚怎么做。

回答

0

我会看看CSS3中的column- *声明。请注意,他们很可能不会在IE浏览器中工作,因为Firefox/Webkit浏览器需要黑客才能正常工作。

http://www.quirksmode.org/css/multicolumn.html

你会只需要设置一个高度包装的div,这是它会切断,并开始新的一列。我想不出一种方法来处理一系列的项目,除非您在PHP中添加逻辑以在X元素之后开始一个新列<div>/<ul>。甚至会是更好的解决方案。

+0

非常遗憾,该网站需要支持IE。 php解决方案就是我所追求的。我只是在表达我的问题时做了一个糟糕的工作。 – Zac 2010-11-07 04:28:31

+0

是的,我会建议只用PHP做这个,然后做逻辑把它们分离成列。 – 2010-11-07 05:30:32

0

如果订单不重要,您可以通过给每个li固定宽度并简单地使它们环绕(float: left应该这样做)来模拟列。

否则,你将不得不等待CSS3完成并通过。

+0

这只会将它们水平堆叠,然后才会换行到下一行?我需要它们垂直到某个高度,然后继续在下一列,我认为它需要一个PHP或JavaScript解决方案。 – Zac 2010-11-07 04:29:39

+0

这就是为什么我说它只是“模拟”列。它在任何情况下都不起作用,但它可能更适合需要JavaScript,并且它会保留列表的语义结构,而不像使用多个列表。 – 2010-11-07 05:31:20