IE9 で奇妙な問題が発生し、追跡と再現に多くの時間を費やしました。
したがって、次のマークアップがあります。
<div class="container">
<div class="movable">
<div class="stuff">Stuff</div>
<div class="stuff special">Stuff Special</div>
<div class="stuff">Stuff</div>
<div class="stuff">Stuff</div>
</div>
</div>
これにより、次のような結果になります。
.stuff
黄色のボックスを上に (コンテナの外に) 移動し、要素をクリアしたいと考えています。少なくとも 1 つ .stuff
の要素をフロートさせたいので、 を選択して、次の.special
ようにします。
.movable { margin-top: -70px; }
.stuff { clear: both; }
.special { float: left; }
左側は Chrome と Firefox で得られた結果、右側は IE9 です。
ご覧のとおり、IE9 は負の値を適用するとどういうわけか動かなくmargin-top
なり、右または左float
をclear: both;
同時に適用する要素で常に動かなくなります。これら 2 つのプロパティの組み合わせが必要です。そのうちの 1 つだけでは、この動作はトリガーされません。
この問題は、非常に大きなアプリケーションで発生しました。特定の理由により、top
代わりに使用できませんmargin-top
。配置すると、他のものが壊れます。
IE9でこれを正しく表示する方法を知っている人はいますか?