右側にサイドバーを使用するウェブサイトがあります。そのサイドバーは、CSSスタイルとして「float:right」を使用しています。
説明として、画像の周りにテキストが浮かんでいるコンテンツをメインに追加するのが好きです。これらの画像には「float:right」も使用しており、期待どおりに機能します。
次のように、画像を含むテキストのいくつかのセクションを互いに追加すると、課題が始まります。
1st text +-----+
text text | img |
+-----+
2nd text +-----+
text text | img |
+-----+
デフォルトでは、2番目の段落は、次のように1番目の段落の終了直後に開始されます。
1st text +-----+
text text | img |
2nd text +-----+
text text
+-----+
| img |
+-----+
私は、段落の間にある明確なスタイルを使用して、段落を分離しておく必要があることを学びました。これは、説明されているように機能します。
img+textブロックごとに使用するコードは次のとおりです。
<div>
<img style="float:right" src="animg.png" width="502" height="241" alt="bla bla">
<p>Text for the image.</p>
<div style="clear:right"></div>
</div>
ただし、サイドバーで問題が発生し始めます。サイドバーが左側にclear:rightが表示されている場所よりも下に下がっている場合は、サイドバーまでコンテンツにギャップが生じます。ここで効果を確認できます:サイドバーがclear:rightに影響を与えるWebサイトの例
これに対処する方法、つまり、clear:rightがサイドバーの高さの影響を受けず、ローカルのテキストと画像のブロックによってのみ影響を受けることを回避するための提案はありますか?
これまでに見つけた提案の1つは、サイドバーにfloatを使用せず、代わりにテーブルを使用することです。しかし、それは新しい問題につながります(たとえば、HTMLコンテンツの順序を変更しない限り、サイドバーが左側に表示され、画面が小さいなどの新しい問題が発生する可能性があります)。