1

IE8 でヘルプが必要です。

私のコードには、プロパティ"display:none"スタイルを持つ多くの div があります

<div>
     <div id=div1 style="display:none">
        ....some lines of code....
     </div>
     <div id=div2 style="display:none">
        ....some lines of code....
     </div>
     <div id=div3 style="display:none">
        ....some lines of code....
     </div>
     <div id=div4 style="display:none">
        ....some lines of code....
     </div>
</div> //outer div

jquery コードでは、条件に基づいて表示と非表示を使用して、div が動的に表示されます。

1 つの div の高さ (例) div1 = 100px で、別の div の高さ (例) div4 = 1000px

問題は、ページが最も低い高さ 100px の div1 をロードするときに表示され、show 関数を使用して他の div が表示されるときです。それらはフッターと重なります。

外側の div の高さが最大の div の高さに設定されている場合。1000px の場合、他の div が表示されると、ページが不必要に長くなります。

外側の div の max-height が 1000px に設定されている場合でも、動的に変化せず、オーバーラップが発生します。

ウィンドウのサイズを変更すると、高さが動的に変化します。ただし、他のタブが開いている場合、ウィンドウのサイズ変更は機能しません。また、ウィンドウ サイズの変更を最小限に抑えるだけでは、オーバーラップを取り除くには不十分です。

display:none を visibility:hidden に変更しようとしましたが、最小の高さの div に対してページが不必要に長くなります。

これは IE8 でのみ発生し、そのバージョン以下のブラウザについてはわかりません。IE9、chrome、mozilla で完全に動作します。

4

1 に答える 1

0

最後に、これに対する答えを見つけました。

ウィンドウのサイズを変更する代わりに、 show /hide の後にコードを追加します

//Javascript
document.body.className = document.body.className;

//Jquery
$('body')[0].className = $('body')[0].className;

正常に動作します

ありがとう。

于 2013-06-27T14:11:48.247 に答える