2012-04-24 19 views
3

私はhttp://50.97.104.102/~topdog/をビルドしているレスポンシブウェブサイトを持っています。スタイルシートの一番下にデスクトップのCSSが表示されるので、ページはモバイルレイアウトで半秒間表示されます(ロゴが中央に表示されます)。次に、デスクトップ形式に切り替えます。これはIE 6,7、および8でのみ発生します。これは半分の時間しか持続しない非常に微妙な問題です。最新のブラウザ(私はクロムを使用しています)は、ページを表示する前にすべてのCSSが読み込まれるまで待つようです。私は、ページをレンダリングする前にCSSがロードされるまでIE 6,7、および8を強制的に強制する必要があります

ページのレンダリング前にCSSファイル全体がロードされるまで強制的にIE 6,7,8を待たせる方法はありますか?好ましくはjavascriptなし。

+0

なぜこれがダウンリストされましたか? – oconnor0

+1

IEに奉仕するときにCSSを一番上に置いてみましたか? – oconnor0

+0

あなたはcssを最上位に置こうとしましたか?あなたのメディアを使用している場合 – rlemon

答えて

2

は、次のCSSに

body { 
    visibility: hidden; 
} 
body.finished { 
    visibility: visible; 
} 

を使用し、onloadハンドラから体に完成したクラスを追加することができます。

これはJSなしでは機能しません。これがJSなしで動作するようにするには、JSが無効の場合はちらつきが発生するが、JSが有効な場合はちらつきが取り除かれます。

body.not-ready{ 
    visibility: hidden; 
} 

<body> 
<script> 
    $(document.body).addClass('not-ready'); 
    $(window).load(function(){ 
    $(document.body).removeClass('not-ready') 
    }); 
</script> 

</body> 
+0

JSをする必要はありません。彼は最初の宣言を一番上に、二番目の宣言を一番下に置くことができます。彼は1つのスタイルシートだけを持っているように私には聞こえるので、矛盾するスタイルシートの問題ではありません。 – Nix

+4

JavaScriptが無効の場合、ページは永久に非表示になります。 – thirtydot

+0

Juan、それは良いアイデアのように聞こえるが、私はサイトがjsなしで機能するようにしたいと思う。 jsを介してボディに.finishedクラスを追加すると、jsがオフの場合はすべてが隠されます。ニックス、私はあなたの考えが好きです。それは動作するようです。 – Stratus3D

関連する問題