2009-04-29 13 views
2

display:none(画面に表示されていない)に設定されている要素にCSSスタイルの宣言があり、背景画像が設定されているとします。CSSの背景画像の読み込みの動作

この要素は、マウスクリックなどのイベントで表示されます。要素が表示される前であっても、ブラウザはこれらの画像をロードしますか?この負荷の動作はブラウザ間で一貫していますか?

答えて

3

前にテストしたブラウザはありません。

イメージを読み込みたい場合は、動作するbackground-position: -1000px -1000pxを試してみてください。画像は表示されませんが、プリロードされます。しかし、要素は通常の流れにある、すなわち隠されていない。

+0

ドキュメントから隠された画像がブラウザによって読み込まれていないことを確認したいのですが、これは主要なブラウザにとっては確かですか? – Pwn

+0

はい、背景イメージが隠し要素にある場合、表示されません。しかし、例えばJSで要素を隠すのを遅らせると、イメージが読み込まれる可能性があります。 – alex

+2

クロムは 'display:none'バックグラウンドイメージをロードしているようです。 –

2

自動的には読み込まれませんが、画像をプリロードするにはJavaScriptのトリックを使用できます。そしてイメージをロードするために、その背景にimagetoload.pngを割り当てる:

pic = new Image(); 
pic.src="http://url/imagetoload.png"; 

は、より良い解決策としては、(-1000px左など)負の測位値のDIVを作成することができます。

+0

このサイトの最初の答えに投票してください^^ – Pwn

4

このトピックには多くの良い情報はありませんので、私はa testpage by Steve Soudersを使ってwebpagetest.orgでいくつかのテストを行いました。

テストされたすべてのブラウザのうち、のみFirefoxはdisplay:noneで背景画像を読み込みません。あなたはsee the test results on my blog hereです。

関連する問題