2016-04-13 14 views
0

HTMLを使用して特定のdivの画像URLを使用してオーバーレイを追加する方法はありますか?divの上にオーバーレイパターン(png)を追加

私はCSSを使って何かを動作させるために管理:

#myDiv { 
    width: 100%; 
    height: 100%; 
    background: url(image.jpg) no-repeat; 

} 
#myDiv:before { 
    content: ''; 
    position: absolute; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    background: transparent url(http://tympanus.net/Tutorials/CSS3FullscreenSlideshow/images/pattern.png) repeat top left; 
    opacity: .6; 
} 

しかし、それは少しトリッキーです。私が他の部門のために同じことをしようとしたとき、それは動作しませんでした。例えば、私はdiv用のこのCSSコードを持っています:

.hi-icon-wrap img 
{ 
    border-radius: 80px; 
    width: 153px; 
    height: 153px; 
    margin:2%; 
} 

オーバーレイを追加したいと思います。私はこのスクリプトを使用していますが、成功しません:

.hi-icon-wrap img:before { 
    background: transparent url(http://tympanus.net/Tutorials/CSS3FullscreenSlideshow/images/pattern.png) repeat top left; 
    opacity: .6; 
} 

私もテストしている:

.hi-icon-wrap img:before { 
    content: ''; 
    position: absolute; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    background: transparent url(http://tympanus.net/Tutorials/CSS3FullscreenSlideshow/images/pattern.png) repeat top left; 
    opacity: .6; 
} 

UPD:

HTMLスクリプトは:

<div class="hi-icon-wrap" class="hi-icon-wrap img" style="text-align: center"> 
    <img src="image.png"> 
</div> 
+1

あなたが問題を抱えているものには「content: '';」などを設定していません。 –

+0

質問を更新しました。それはどちらもうまくいかなかった。 @AndyHolmes –

+2

あなたの編集が正しくありません。あなたは 'img'を見逃してしまいました –

答えて

3

あなたはオーバーレイを使用する必要がありますon div要素ではなく、img

#myDiv { 
 
    position: relative; 
 
    display: inline-block; 
 
    border-radius: 80px; 
 
    overflow: hidden; 
 
} 
 
#myDiv:before { 
 
    content: ''; 
 
    position: absolute; 
 
    top: 0; 
 
    right: 0; 
 
    bottom: 0; 
 
    left: 0; 
 
    background: url(http://tympanus.net/Tutorials/CSS3FullscreenSlideshow/images/pattern.png) repeat top left; 
 
    opacity: .8; 
 
} 
 
img { 
 
    vertical-align: top; 
 
}
<div id="myDiv"> 
 
    <img src="http://placehold.it/150x150/D6E7FF/ffffff"> 
 
</div>

編集:画像要素がテキストを含むか、子孫を持っていないので、あなたがここにDemoを見ることができるようにあなたがimg:afterまたは:beforeを使用することはできませんので、あなたが何ができるかラップIMGです例えばdivの場合はDemo

+0

それはdivのために働くが、私はそこに画像のためのオーバーレイが欲しい。 –

+3

イメージタグは内容を含んでいないので、画像タグは自己閉鎖()タグです。コンテンツが含まれていないため、生成されたコンテンツを追加することはできません(:: after)か、既存のコンテンツにprepended(:: before)します。 –

+0

どうすればイメージのためだけに動作させることができますか? JSは唯一の解決策ですか? @Nenad Vracar –

関連する問題