/ / sIFR.useStyle - Safari 4とOperaの奇妙さ - サファリ、sifr、オペラ、再描画

Safari 4とOperaのsIFR.useStyleCheckの奇妙さ - safari、sifr、opera、repaint

だから、私は "SIFR(バージョン3、リビジョン436)を使用しています私のナビゲーション内の要素を置き換えると、すべてが美しいです。しかし、私がCSSのロードを検出するためにsIFR.useStyleCheckをオンにすると、Safari 4ではすべてがおかしくなります。おかしいことに、挿入されたダミーdivは42pxの左マージンで残っているように見えます。ブラウザのウィンドウに水平スクロールバーも表示されますが、これは常に楽しいことです。しかし、ブラウザウィンドウのサイズを変更すると、すべてが再描画され、また元気になります。

私はこれがFirefoxで起こらないことを知っています。 Operaに影響を与えているようです。まだSafari 3でテストしていません。IEで起動したときに何が起こるかはわかっていますが、Mark(Wubben)はsIFR.useStyleCheckは主にパフォーマンスの向上を目的としているためです。サファリとオペラで。

助言がありますか?私は再描画を強制する方法を探しましたが、それを理解することはできませんでした。

回答:

回答№1は0

気にする人のために、私はそのことを考え出した問題は私のsIFR.cssが私のtypography.cssの前にロードされていたということでした。重要なのは、sIFR.useStyleCheckを使用すると、挿入されたダミーdivに42pxの余白があることが検出されるまで、sIFRが置換を実行するのを待機するためです。 42pxのマージンは、もちろんsIFR.cssによって設定されます。 42pxの左マージンが検出されると、テキストの最初の場所への配置やスタイルを指示するCSSの残りの部分がまだロードされていなくても、sIFRはテキストをうまく置き換えていきます。あなたのtypography.cssはあなたがブラウザウィンドウのサイズを変更してsIFRが再描画しない限り - "予算"ではない。

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

おもしろかったのはブラウザが違うことCSSの扱いを変える。ダミーdivのスタイル設定をsIFRに任せる前にFirefoxがすべてのCSSを処理しなければならないことは明らかです。しかし、OperaとSafariにとっては、sIFRがスタイルを決定するのでCSSが正しい順序でロードされることが重要です起こります。それで、これは上でSafariとオペラで説明された「奇妙さ」を修理しました、しかし私はまだ「オペラで若干の不可解な様式問題を抱えています…しかしそれは別の話です。」