目前仅使用 CSS/HTML 无法自动浮动相邻的两列。实现此目的的两种方法:
方法一:没有连续的文字,只有很多不相关的段落:
将所有段落浮动到左侧,给它们包含元素宽度的一半,如果可能的话,设置一个固定的高度。
<div id="container">
<p>This is paragraph 1. Lorem ipsum ... </p>
<p>This is paragraph 2. Lorem ipsum ... </p>
<p>This is paragraph 3. Lorem ipsum ... </p>
<p>This is paragraph 4. Lorem ipsum ... </p>
<p>This is paragraph 5. Lorem ipsum ... </p>
<p>This is paragraph 6. Lorem ipsum ... </p>
</div>
#container { width: 600px; }
#container p { float: left; width: 300px; /* possibly also height: 300px; */ }
您还可以在段落之间插入 clearer-div 以避免必须使用固定高度。如果您想要两列,请在两两段落之间添加一个 clearer-div。这将对齐下两个段落的顶部,使其看起来更整洁。例子:
<div id="container">
<p>This is paragraph 1. Lorem ipsum ... </p>
<p>This is paragraph 2. Lorem ipsum ... </p>
<div class="clear"></div>
<p>This is paragraph 3. Lorem ipsum ... </p>
<p>This is paragraph 4. Lorem ipsum ... </p>
<div class="clear"></div>
<p>This is paragraph 5. Lorem ipsum ... </p>
<p>This is paragraph 6. Lorem ipsum ... </p>
</div>
/* in addition to the above CSS */
.clear { clear: both; height: 0; }
方法2:当文本是连续的
更高级,但可以做到。
<div id="container">
<div class="contentColumn">
<p>This is paragraph 1. Lorem ipsum ... </p>
<p>This is paragraph 2. Lorem ipsum ... </p>
<p>This is paragraph 3. Lorem ipsum ... </p>
</div>
<div class="contentColumn">
<p>This is paragraph 4. Lorem ipsum ... </p>
<p>This is paragraph 5. Lorem ipsum ... </p>
<p>This is paragraph 6. Lorem ipsum ... </p>
</div>
</div>
.contentColumn { width: 300px; float: left; }
#container { width: 600px; }
谈到易用性:对于非技术客户来说,这些都不是一件容易的事。你可以尝试向他/她解释如何正确地做到这一点,并告诉他/她为什么。如果客户将来要通过所见即所得的编辑器更新网页,那么学习非常基本的 HTML 无论如何都不是一个坏主意。
或者您可以尝试实现一些 Javascript 解决方案来计算段落总数,将它们分成两部分并创建列。对于那些禁用 JavaScript 的人来说,这也会优雅地降级。第三种选择是让所有这些拆分为列的操作发生在服务器端,如果这是一个选项的话。
(方法三:CSS3多列布局模块)
您可能会阅读有关CSS3 的做法,但它对于生产网站来说并不实用。至少现在还没有。