2016-06-02 7 views
9

イメージをバックグラウンドで設定したいのですが、イメージ名はbg.pngまたはbg.jpgです。デフォルトが存在しない場合のfallback background-image

デフォルトの背景が存在しない場合、代替画像へのフォールバックを作成するためのjavascript以外の方法はありますか?

body{ 
    background: url(bg.png); 
    background-size: 100% 100%; 
    width: 100vw; 
    height: 100vh; 
    margin: 0; 
} 
+1

画像が** **存在しない場合は、目的の動作は何ですか? – Chris

+0

私はファイルアップローダーを追加し、アップローダーはpngまたはjpgを受け入れます。アップロードされる画像に基づいてファイルをbg.pngまたはbg.jpgに設定します – djsony90

+0

bodyタグに 'data-fallback'属性を追加し、' var body = $(document.body); ' ' –

答えて

20

あなたは透明性があっていない場合は、複数の背景を使用すると、すべての利用可能なスペースを占有したり、同じ大き持つことができます。最初は終了していない場合は、2番目に表示される

div{ 
 
    background-image: url('http://placehold.it/1000x1000'), url('http://placehold.it/500x500'); 
 
    background-repeat:no-repeat; 
 
    background-size: 100%; 
 
    height:200px; 
 
    width:200px; 
 
}
<div></div>

を。

div{ 
 
    background-image: url('http://placehol/1000x1000'), url('http://placehold.it/500x500'); 
 
    background-repeat:no-repeat; 
 
    background-size: 100%; 
 
    height:200px; 
 
    width:200px; 
 
}
<div></div>

+0

あなたは男です。これはまさに私が探していたものです。 – djsony90

+0

私は彼が答えた瞬間に彼の答えを受け入れました。その後、私はあなたが同じ解決策で答えたことに気付きました。もう一度ありがとう – djsony90

+0

私は私の答えを書くときには別の答えが異なっていましたが、私のためにあなたの投票を変更する必要があるなら、私は助けようとします、評判を心配しないでください。 – blonfu

5

複数の可能な背景を指定するには、あなたができる:それが存在する場合は

background-color: green; 
    background-image: url('bg.png'), url('bg.jpg'); 

これはbg.pngに背景を設定します。存在しない場合は、bg.jpgに設定されます。これらのイメージが1つも存在しない場合、背景はスタティック​​の色に設定されます。

最初に指定された画像に優先順位を付けます。両方の画像が存在する場合、bg.jpgを超えてbg.pngが選択されます。

demo hereをチェックしてください。イメージURLのいずれかを破棄してテストします。

+0

私が必要とする解決策ではありませんが、私はちょうど上に投票しました。代替ソリューション。 – djsony90

+1

@ djsony90ああ、イメージは常に存在しますが、それは 'jpg'または' png'でしょうか? – Chris

+0

申し訳ありませんが、私は指定しませんでした。アップローダは、既存のbg.pngまたはbg.jpgを削除し、新しいものを更新します。bg.pngまたはbg.jpg – djsony90

関連する問題