質問: $(this).height(); } }); // now apply the tallest block value to the heights of all relevant divs $(mainblock).height(highestblock); $(secondblock).height(highestblock); $(thirdblock).height(highestblock); } //equal height usage example equalheight('nav#mynav', 'img#someimage', 'section.mysectionclass'); 問題この関数は思い通りに機能しますが、(window).resizeで呼び出すと、特にie8で問題が発生します。私のサイトは反応がよく、ブラウザーウィンドウのサイズが変更されたら、divの均等化された高さを再調整する必要があります。これは他のブラウザーでも問題なく動作するようですが、 ie8がサイズ変更イベントを処理する方法のため の場合、サイズ変更イベント内でequalheight関数を呼び出すと、無限ループがトリガーされ、ブラウザーがクラッシュします。質問上記を踏まえ、パフォーマンスを犠牲にすることなく、ie8でサイトが同じサイズのブロック/ divを持つことができることをどのように保証しますか? (window).resizeイベントの使用を避けたいのですが、優れた代替案が見つかりませんでした。 equalheight関数を呼び出すのに適した時間と場所はありますか? equalheight関数自体に欠けている欠陥はありますか?私が検討する余地がない唯一の解決策は、「サイトのデザインを変更する」ことです。これは私が制御できるものではないためです。
回答: 私が検討する余地がない唯一の解決策は、「サイトのデザインを変更する」ことです。これは私が制御できるものではないためです。 これは、断然、最善の解決策です。高さの等しいカラムを使用することは、機能性にまったく影響を及ぼさない、純粋に美的な決定です。このように、これは漸進的強化の原則とともに追加されるべき動作です。それをサポートすることができるブラウザのために持っている素晴らしい。最悪の場合のフォールバックのシナリオは、ie8ユーザー(2.1%と-- http://www.w3schools.com/browsers/browsers_explorer.asp )がすべてのコンテンツとすべての機能を取得することです、高さが同じ列は表示されません。世界の終わりはほとんどありませんか? ie8のユーザーは決して気付かないでしょう。責任あるウェブデザイナーとしてのあなたの仕事の一部は、ウェブ上で何が可能で、何が不可能であるか、望ましくないかをクライアントに教育することです。彼らはおそらくそのようなことをすることが悪い考えである理由を知らない、彼らはウェブデザイナーではない。