2009-03-24 18 views
3

ウェブアプリケーションでは、フォームが隠されているか、またはjquery UIコントロールの上に表示されていると、ユーザーがマウスオーバーするまでレンダリングの問題が発生しますタブをクリックすると、タブヘッダーが正しい位置に再描画されます。divをリフレッシュする(ブラウズして再描画するようにします)

それだけIE7でoccuringとクイックハックとして私はタブのdiv要素は、IEでリフレッシュさせるようにフォームを表示した後にこれをやっているのです:私はちょうど場合は思ったんだけど

$('#tabs').css('display', 'none').css('display', 'block');

あり私のアプローチが他のブラウザで望ましくない副作用を持つかもしれないと心配しているので、div要素がページの要素のレイアウトを再描画/再計算するのに適しています。

答えて

2

は、私がこれに同様の問題は、一度、それは表示のdivに設定されていない幅の問題であることが判明していました。要素に静的なpx幅を設定すると、効果がありました。

+1

Yah、幅を設定するとhasLayoutもtrueに設定されます。 http://www.satzansatz.de/cssd/onhavinglayout.html – wombleton

+1

これは良いリソースですが、hasLayoutなどの記事の断片を見てきましたが、私は非常に徹底的な記事は見ていません。 – Bittercoder

4

野生の推測ですが、hasLayoutとなります。以下のような何か追加

試してみてください。

#tabs { 
    zoom: 1; 
} 
+0

実際。 hasLayoutの邪魔はIE8の標準モードで廃止されるでしょう、我々は保証されています。 – Dustman

+1

私は信じられません。 – wombleton

+0

私は素早く見ましたが、すでに#tabs divがhasLayout = true ...と表示されていますが、上に表示されている動的フォームにズーム:1を適用しようとしていますが、現在hasLayout = trueではないと思います。 – Bittercoder

関連する問題