0

div内にimgがあります。imgを「float:right」に設定し、divを「overflow:hidden」に設定しました。divはimgよりも狭いので、imgの左側の部分が切り取られて非表示になると思います。これは、Firefoxの場合です。ただし、IEは、imgの「float:right」プロパティを確認することを拒否し、常にimgをdivの左側に固定し、imgの右側の部分を切り取ります。この問題の回避策はありますか?それとも私は何か間違ったことをしていますか?


**背景情報

これを実行したい理由は、imgをjqueryの「ブラインド」効果(左から右)で表示し、同様のブラインド効果(ここでも左から右)で非表示にするためです。

jqueryのデフォルトのブラインド効果は、左から右への消失を処理しません。これは、特定のモード(非表示と表示)と特定の方向(左と右、または上と下)の組み合わせで、divの左上の位置をさらに移動する必要があるためだと思います。例を挙げて説明しましょう。ブラインド効果で画像を左から右に表示したいとします。これは簡単です。divオーバーフローを非表示に設定し、画像を左にフロートさせてから、divの幅を0から画像の幅に変更します。一方、ブラインド効果で画像を左から右に非表示にしたい場合は、画像を右にフロートするように設定し、divの幅を画像の幅から0に縮小し、 divの左上隅の右側、

左上隅の動きを組み込むコードを作成しました。FFでは正常に機能しますが、IEでは失敗します。IEはfloat:rightを尊重せず、代わりに画像を左に固定することを主張するため、効果は「ブラインド」アニメーションではなくjqueryの「スライド」の効果になります。

4

2 に答える 2

1

IE7では次のことを試してみてください。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<div style="overflow: hidden; width: 150px; direction: rtl;">
   <img src="yourimage.png" style="float: right" />
</div>
</body>
</html>

方向:rtl styelは、IE7標準モードを使用するIE8で機能します。IE8標準を使用するIE8は、方向スタイルを必要としません。

うまくいけば、これはあなたの問題を解決するかもしれません。divにある他のコンテンツで機能するかどうかはわかりませんが、画像で必要な効果が得られるようです。

于 2009-10-30T01:49:20.493 に答える
0

最悪の場合:画像の左側に白いDIVをスライドさせますか?ただし、非常にクロスプラットフォームです。

于 2009-10-30T00:55:11.053 に答える