透明な div 内のテキストに不透明度を持たないようにしようとしています。つまり、完全に黒くしようとしています。
<div style="opacity:0.6;background:#3cc;">
<p style="background:#000;opacity:1">This text should be all black</p>
</div>
これはCSSだけで可能ですか?
前もって感謝します
透明な div 内のテキストに不透明度を持たないようにしようとしています。つまり、完全に黒くしようとしています。
<div style="opacity:0.6;background:#3cc;">
<p style="background:#000;opacity:1">This text should be all black</p>
</div>
これはCSSだけで可能ですか?
前もって感謝します
最も簡単な方法は、不透明度/アルファを使用して親 div の背景をスタイルすることです。
div {
background: #fff; /* for browsers that don't understand the following rgba rule */
background-color: rgba(255,255,255,0.5); /* rgb, white, with alpha at 0.5 */
}
ただし、これは IE と互換性がありません。
IE >= 7 との互換性のために、次を使用できます。
div {
background-image: url('path/to/partially_transparent.png');
background-position: 0 0;
background-repeat: repeat;
}
IE < 7 には独自のフィルター オプションがあることを思い出しましたが、残念ながらそれがどのように機能するか思い出せません。したがって、それを説明/表示する試みは省略しました。有用なリファレンスが見つかった場合は、後で追加します。
easwee が指摘したように、不透明度は含まれる要素によって継承されるため、オーバーライドできないため、background-color
/background-image
アプローチを使用することを好みます。
子要素は不透明度を継承します。できることは<p>
、不透明な div の外側に配置し、負のマージンを設定してその上に移動することです。
私はこの問題に頻繁に遭遇し、通常はこのように解決しました。問題は、動的コンテンツがあり、div を展開する必要がある場合のみです。
背景は単色で構成されていますか?その場合、RGBa を使用しdiv
て、その子に継承されない透明な背景色を選択することもできます。詳細、IE の回避策、および別の解決策については、 RGBa Browser Supportを参照してください。
の背景がdiv
無地でない場合は、透明な PNG を背景として使用できます。IE6 (および 5.5) では AlphaImageLoader を使用することを忘れないでください。