IE6、IE7、および FF2 では、.outer
下の div がドキュメントの右端まで伸びています。完全なテストケースは次のとおりです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
.outer { position:absolute; border:1px solid red; }
.outer .floater { float:right; }
</style>
</head>
<body>
<div class="outer">
<div class="floater">Lorem ipsum</div>
</div>
</body>
私が理解しているようposition:absolute
に、外側の div はドキュメントの流れから削除する必要があり、(幅を指定せずに)そのコンテンツを表示するために必要な最小限のスペースを占有する必要があります。ただしfloat:right
、どの子でもこれを破ります。
予想される出力 (IE8、FF3+、Chrome 2+、Safari 4、Opera 9+):
実際の出力 (IE6、IE7、FF2):
外側のdivが伸びないようにするにはどうすればよいですか? これは、IE6、IE7、および Firefox 2 でのみ発生します。
要件:
.outer
セットを持つことはできませんwidth
(そのままにしておく必要があります"auto"
).outer
絶対的な位置に留まらなければならない.floater
右にフロートしたままにする必要があります
更新:
jQueryダイアログを使用して、「実際の」例として動作を再現しました。特性は同じです。
- 絶対位置の div があります (つまり、ダイアログ コンテナー、jQuery-UI がこれを作成します)。
- 1) の div には
width="auto"
- このダイアログ内には、右にフロートする要素があります。
こちら を参照してください。ここでも、IE6、IE7、および FF2 だけが問題のあるブラウザーです。
これにより、アプリケーション内の条件が複製されます。私はこのアップデートの上に表示されているように問題を煮詰めてみましたが、私の要件が理にかなっている現実世界の例を人々が使用できると感じています. 私はこれをやったと思います。