div
にはbackground-image
があります。私は、ユーザーがdivを移動するときに、背景画像をrgbaカラー(rgba(0,0,0,0.1)
)でオーバーレイしたいと思います。背景色がrgbaの背景画像を重ねる
1つのdivソリューションがあるかどうかは疑問でした(つまり、複数のdivではなく、1つは画像用、もう1つは色など)。
私は複数のものを試してみました:
<div class="the-div" id="test-1"></div>
<div class="the-div" id="test-2"></div>
<div class="the-div" id="test-3"></div>
そして、このCSS:
.the-div {
background-image: url('the-image');
margin: 10px;
width: 200px;
height: 80px;
}
#test-1:hover {
background-color: rgba(0,0,0,0.1);
}
#test-2:hover {
background: url('the-image'), rgba(0,0,0,0.1);
}
#test-3:hover {
background: rgba(0,0,0,0.1);
}
はthis fiddleを参照してください。
私が見た唯一の選択肢は、別のイメージをオーバーレイでJavaScriptにプリロードしてから.the-div:hover { background: url('the-new-image'); }
を使用することです。しかし、私はCSS専用のソリューションを望んでいます(より少ないHTTP要求、少ないハードディスク)。何かありますか?
base64でエンコードされた1ピクセルx 1ピクセルのイメージを使用して、これをわずかに最適化することができます。エンコードされたPNGを使用すれば、透明性とすべてを得ることができます。 base64イメージの欠点は読みにくく、簡単な変更は容易ではありません。あなたはすべての勾配の仕様のために余分な5行を持つ必要はありません。 – RedEight
@RedEight: '-moz'と' -ms'のバージョンはもはや必要ではありません。従来のWebKitの表記でも同じです。そして、私は '-o'も必要ないと思います。新しいOperaのバージョンはWebKitに基づいています。実際には2行しか必要ありません。 –
ありがとうございます。それはとてもうまくいっています。 –