1

jquery UI を使用して div を垂直方向にサイズ変更しています (IE は n ハンドルを使用しています)。私はヘルパーを使用しているので、ユーザーがドラッグをやめた後にのみサイズが変更されます。サイズ変更が完了したら、周囲の要素の寸法を設定する関数を呼び出して、それらがすべてコンテナー内に収まるようにします。

これは chrome と IE の両方で機能しますが、firefox ではトップの css プロパティが追加され、コンテナーから div が吹き飛ばされます。

事後にトップ値を削除しようとしましたが、これは機能しますが、これは一種のハックであり、div が「ジャンプ」する原因にもなります。

これはバグですか?jquery css html などを使用した回避策はありますか?

私が何を意味するかを確認するには、このフィドルをチェックして要素のサイズを変更します。Firefox で調べると、最上位の css プロパティがありますが、クロムにはありません。

ありがとう、ルーク

4

1 に答える 1

3

私の意見では、それはバグです。

回避策: IEtop: 0;の css ルールにa を追加すると、chrome と firefox は同じ動作になります。更新された例#resizableも参照してください。

===更新===

ファイアフォックスのバグです。答えを見つけるために、jQuery UI のサイズ変更可能なメソッド コードからjQuery (メイン) コードのcssメソッドまで歩きました。検索の最後に、firefox がnot/static 配置要素の csstop値を返しますが、相対位置が設定されている場合は返すことがわかりました。どちらの場合も定義されていません (違いなく に設定できます- これがデフォルト値です)。auto0pxtopauto

この例も参照してください。

サイズ変更可能なメソッドでは、この結果が違いを生みます (jQuery UI は、クラスを追加することによって DOM 要素への相対位置を設定します)。バグ (私が mozilla に報告済み) が修正される場合、Firefox での例の動作は chrome での動作と同じになるはずです。

何か新しいことがあればここで報告します...

===更新===

今、私はあなたのための回避策を持っています:

説明した特別な状況では、サイズ変更可能な要素の css 位置を手動で に設定しますstatic

スタイルシートに追加:

#resizable { position: static; }

更新された例も参照してください。

于 2012-07-04T18:12:53.023 に答える