0

そこで、sIFR (バージョン 3、リビジョン 436) を使用してナビゲーションの要素を置き換えていますが、すべてが美しいです。しかし、CSS の読み込みを検出するために sIFR.useStyleCheck をオンにすると、Safari 4 ですべてがおかしくなりました。正しい水平位置になかったり、本来あるべきときに折り返されなかったりするなどです。また、ブラウザ ウィンドウに水平スクロール バーが表示されますが、これは常に楽しいことです。しかし、ブラウザ ウィンドウのサイズを変更すると、すべてが再描画され、再び問題なく表示されます。

これが Firefox では起こらないことはわかっています。Opera に影響があるようです。Safari 3 ではまだテストしていません。Mark (Wubben) が sIFR.useStyleCheck は主に Safari と Opera でのパフォーマンスを改善するためのものだと言っているので、IE で起動するとどうなるかは神のみぞ知るところですが、実際には問題ないと思います。

助言がありますか?再描画を強制する方法を探しましたが、わかりませんでした。私がそうしたとしても、それは非常にエレガントなソリューションではありません。

4

1 に答える 1

0

気になる方のために説明すると、sIFR.css が、typography.css の前にロードされていたことが問題であることがわかりました。これが重要な理由は、sIFR.useStyleCheck を使用すると、挿入するダミー div の左マージンが 42px であることを検出するまで、sIFR が置換を待機するためです。もちろん、42px の余白は sIFR.css によって設定されます。42px の左マージンが検出されると、最初にテキストをどのように配置/スタイルするかを指示する残りの CSS がまだロードされていなくても、sIFR は喜んでテキストを置き換えます。置換が行われると、ブラウザ ウィンドウのサイズを変更して sIFR を再描画しない限り、typography.css はそれらを動かしません。

したがって、ダミーのdivがどういうわけか物事を捨てていたという私の最初の推測は、まったくそうではありませんでした。ダミー div は正常に削除され、何も変更されません。

興味深いのは、ブラウザーが異なれば CSS の扱いも異なるということです。ダミー div のスタイル設定方法を sIFR に任せる前に、Firefox がすべての CSS を処理しなければならないことは明らかです。しかし、Opera と Safari の場合、CSS が正しい順序で読み込まれることが重要です。これは、sIFR がスタイル設定の影響を受けるためです。これで、上記の Safari と Opera での「おかしさ」は修正されましたが、Opera ではまだ謎のスタイリングの問題がいくつか残っています … しかし、それはまた別の話です。

于 2009-10-20T07:26:51.837 に答える