私は、この一見単純な問題に 10 年間悩まされてきました。(OK、毎日ではありません!)
IE では正常に動作しますが、FF と Chrome では動作しません。これは通常、コードに問題があることを示しています...両側に DIV ボックスが必要です (実際にはさまざまなサイズの IMG であるため、そうしないでください)。表の使用について説明します)、テキストを揃えます。さまざまなウィンドウ幅でこの例を試してください。FF では、3 行目は前の DIV の上に表示されます。なぜ ?
基本的には、DIV をウィンドウの各辺に沿って積み重ね、テキストを中央に配置する必要があります。テキストが多すぎる場合は、次の div が押し下げられます。IE では正常に動作します。
<HTML>
<HEAD>
<TITLE>Align test</TITLE>
<STYLE TYPE="text/css">
.DL { float:left; clear:left; width:10em; height:10em; background:red; margin:2; display:inline; }
.DR { float:right; clear:right; width:10em; height:10em; background:green; margin:2; display:inline; }
.PL { text-align:left; background:#F0E0E0; }
.PR { text-align:right; background:#E0F0E0; }
</STYLE>
</HEAD>
<BODY>
<DIV CLASS=DL></DIV><P CLASS=PL>This is the 1st line.</P>
<DIV CLASS=DR></DIV><P CLASS=PR>This is the 2nd line.</P>
<DIV CLASS=DL></DIV><P CLASS=PL>This is the 3rd line which should align with the 2nd red square (*)</P>
<DIV CLASS=DR></DIV><P CLASS=PR>This is the 4th line which should align with the 2nd green square.</P>
<P>(*) No, I don't want a clear:right in here. And adding a float:left works fine if the text is short, but moves the right image down if it reaches it, and it moves the whole line down below the left image if it reaches the right border. Which I don't want.</P>
</BODY>
</HTML>
追加の質問: P を SPAN に置き換えると、さらに混乱します。なぜ P と SPAN の間にそんなに大きな違いがあるのですか?