3

私の Web ページは 2 つの IE6 レンダリング バグに悩まされています。それぞれに回避策がありますが、残念ながら回避策は相互に互換性がありません。

最小化されたテスト ケースを次に示します。Firefox/Safari での動作は望ましい/正しいものです。IE7 は、現在アクセスできないため不明です。

最初のバグ: #content に overflow: auto があり、相対的に配置された div が含まれています。IE6 は、相対的に配置された div に誤って「固定」の外観を与えます。回避策: #content で position: relative を設定します。

2 番目のバグ: ページにモーダル ポップアップが表示されることがあります。ポップアップと背景の z-index は非常に高く設定されており、それらの背後にあるものとの相互作用を防ぎます。これは、#content に position:relative を設定するまで問題なく動作します。これにより、IE6は z-index プロパティを完全に間違って処理します。

これらのバグを互いにうまく連携させるにはどうすればよいですか? (注: まだ IE6 を実行しているユーザーのハード ドライブをリモートでフォーマットすることはできません。非常に残念です。)

編集: これは、コンテンツに対して位置を適用するとどうなるかを示す2番目のテストケースです。最初のバグ (#content-header の「修正された」外観) は解決されましたが、z-index バグが発生し、モーダル バックグラウンドが台無しになります。

4

4 に答える 4

0

Ra-Ajax.orgで行ったようなものを実装します(ヒント、IE でサイトにアクセスしてください ;)

真剣に、prototype.js と 37signals でさえ IE6 のサポートを停止しました。次に進む時だと思います...

于 2008-11-28T00:13:49.853 に答える
0

ie6 (およびそれ以下) の準拠に関する大規模な問題を回避する方法については、無数の実装があります。実際に私のために(かなりの程度まで)機能した唯一のものは、ディーン・エドワードのソリューションです。

メイン ヘッダーに次の行を挿入してみてください。

<!--[if lt IE 8]><script src="http://ie7-js.googlecode.com/svn/version/2.0(beta)/IE7.js" type="text/javascript"></script><![endif]-->

--そして、そこからどうなるかを見てください(おそらくすべてを修正するわけではないので、まだ処理する必要があるもの)。

スクリプトのサイズはわずか 30kb で、ie6 と ie7 でのみロードされます。

Google コードの URL は (明らかに) http://code.google.com/p/ie7-js/です。

于 2008-11-26T13:05:20.733 に答える
0

ライブラリを使用することは、ばかげた IE のバグに対処する時間を最小限に抑えるのにそれほど悪いペナルティではないと思います。

最終的に bgiframe jquery プラグイン ( http://plugins.jquery.com/project/bgiframe ) を使用しました。ライブラリに iframe の「シールド」手法を実装します。IE6 のブリードスルーに夢中になる必要がないように、IE6 ユーザーにライブラリのダウンロード ペナルティをもう少し与える必要があると思います (実際にはそれほど多くはありません)。

PS 世界の Web 開発者は集団訴訟を開始して、Microsoft イーサに IE6 と IE7 の firebug と同等のものを提供するよう強制するか、IE6 と IE7 のすべてのインスタンスを標準にアップグレードするか、IE6 と IE7 のすべてのバージョンを削除する必要があると思います。インターネット上のすべてのコンピューターから、またはすべての Web 開発者をそれぞれ 100 万ドルの支払いで彼らの痛みと苦しみを救済します!

于 2008-12-09T17:25:44.727 に答える
-1

これは間違った解決策であり、おそらくやり過ぎかもしれませんが、jQuery はこれと同様のモーダル ポップアップを実行でき、IE6 で動作します。このような単純な答えにはおそらく反対票を投じるでしょうが、車輪を再発明する前に、他のソリューションを検討する、または少なくとも検討する価値はあります。

于 2008-11-25T23:07:46.913 に答える