web-dev-qa-db-ja.com

背景画像の不透明度を変更する

テキストブロックを持つdiv要素と、背景画像を設定した親divがあります。次に、背景画像の不透明度を減らしたいと思います。どうすればそれができるか提案してください。

前もって感謝します。

編集:

HTMLコンテンツを編集して、ブログ投稿のblogger.comの表示方法を変更したいと考えています。 htmlコードは次のようになります。

<div>
 //my blog post
</div>

上記のコード全体をdiv要素で囲み、各divの不透明度を以下のように個別に設定しようとしました。

<div style="background-image:url("image.jpg"); opacity:0.5;">
<div style="opacity:1;">
 //my blog post
</div>
</div>

しかし、それは機能していません。

24

背景の不透明度と呼ばれるものはありません。不透明度は、要素、そのコンテンツ、およびすべての子要素に適用されます。また、この動作は、子要素の不透明度をオーバーライドするだけでは変更できません。

子と親の不透明度は長年の問題であり、最も一般的な修正方法はrgba(r,g,b,alpha)背景色を使用することです。しかし、この場合、それは背景画像であるため、そのソリューションは機能しません。 1つの解決策は、画像自体に必要な不透明度を持つPNGとして画像を生成することです。別の解決策は、子divを取り出して、絶対位置に配置することです。

8
techfoobar

最近では、CSSプロパティ "background-blend-mode"で簡単に行うことができます。

<div id="content">Only one div needed</div>

div#content {
    background-image: url(my_image.png);
    background-color: rgba(255,255,255,0.6);
    background-blend-mode: lighten;
    /* You may add things like width, height, background-size... */
}

背景色(白、不透明度0.6)を背景画像にブレンドします。詳細 ここ(W3S)

27
Carlos2W

背景画像に透明度を直接使用することはできませんが、次のような方法でこの効果を実現できます。

http://jsfiddle.net/m4TgL/

HTML:

<div class="container">
    <div class="content">//my blog post</div>
</div>​

CSS:

.container {  position: relative; }

.container:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1;
    background-image: url('image.jpg');
   opacity: 0.5;
}

.content {
    position: relative; 
    z-index: 2;
}​
27
Alexey Ivanov

複数のdivを作成して、それを行うことができます。

<div style="width:100px; height:100px;">
   <div style="position:relative; top:0px; left:0px; width:100px; height:100px; opacity:0.3;"><img src="urltoimage" alt=" " /></div>
   <div style="position:relative; top:0px; left:0px; width:100px; height:100px;"> DIV with no opacity </div>
</div>

私はそれを数回しました...シンプルでありながら効果的です...

3
deki.bg

以前のコメントに応答して、CSSがcssスタイルシートではなくphpページにある場合、「コンテナ」の例で変数によって背景を変更できます。

$bgimage = '[some image url];
background-image: url('<?php echo $bgimage; ?>');
0
basd