テキストブロックを持つ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>
しかし、それは機能していません。
背景の不透明度と呼ばれるものはありません。不透明度は、要素、そのコンテンツ、およびすべての子要素に適用されます。また、この動作は、子要素の不透明度をオーバーライドするだけでは変更できません。
子と親の不透明度は長年の問題であり、最も一般的な修正方法はrgba(r,g,b,alpha)
背景色を使用することです。しかし、この場合、それは背景画像であるため、そのソリューションは機能しません。 1つの解決策は、画像自体に必要な不透明度を持つPNGとして画像を生成することです。別の解決策は、子divを取り出して、絶対位置に配置することです。
最近では、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) 。
背景画像に透明度を直接使用することはできませんが、次のような方法でこの効果を実現できます。
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;
}
複数の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>
私はそれを数回しました...シンプルでありながら効果的です...
以前のコメントに応答して、CSSがcssスタイルシートではなくphpページにある場合、「コンテナ」の例で変数によって背景を変更できます。
$bgimage = '[some image url];
background-image: url('<?php echo $bgimage; ?>');