隣り合う 2 つの列を自動的にフローティングすることは、現時点では CSS/HTML でのみ可能ではありません。これを実現するには、次の 2 つの方法があります。
方法 1: 連続したテキストがなく、無関係な段落がたくさんある場合:
すべての段落を左にフロートさせ、含まれる要素の半分の幅を与え、可能であれば固定の高さを設定します。
<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 を挿入することもできます。2 つの列が必要な場合は、2 つと 2 つの段落の間に clearer-div を追加します。これにより、次の 2 つの段落の上部が揃えられ、見栄えが良くなります。例:
<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; }
使いやすさに関して言えば、技術に詳しくないクライアントにとって、これらのどれも本当に簡単ではありません。これを適切に行う方法を彼/彼女に説明し、その理由を伝えようとするかもしれません. いずれにせよ、クライアントが将来 WYSIWYG エディターを介して Web ページを更新する場合、非常に基本的な HTML を学習することは悪い考えではありません。
または、段落の総数をカウントし、それらを 2 つに分割して列を作成する Javascript ソリューションを実装しようとすることもできます。これは、JavaScript を無効にしているユーザーに対しても適切に低下します。3 番目のオプションは、これがオプションである場合、このすべての列への分割アクションをサーバー側で発生させることです。
(方法 3: CSS3 段組レイアウト モジュール)
CSS3 の方法について読むかもしれませんが、実際の Web サイトでは実用的ではありません。少なくとも、まだです。