Divの背後に背景画像の一部を表示するために、不透明度60%のdivがあります。不透明度が60%であるため、そのdiv内のテキストは灰色で表示されます。
とにかくこのレベルをオーバーライドしてテキストを黒く表示する方法はありますか?
助言をいただければ幸いです。
ありがとう。
私は自分のウェブサイトで過去にこれを実験したことがあります。はるかに簡単に目的を達成する最も簡単な方法は、不透明度を100%未満に設定して(つまり、部分的に透明にして)単一ピクセルの.PNG画像を作成し、それを背景画像として使用することです。デフォルトでは、それを含む要素全体が埋められます-そうでない場合は、CSSのbackground-repeat属性が 'repeat'に設定されていることを確認してください。
このようにすると、含まれている要素自体に透明度を設定する必要がないため、テキストの不透明度は影響を受けません。
驚くべきことに、半透明の単一ピクセル.PNG ここ を作成するためのツールがあります。
不透明度はdiv全体とそのすべての子に適用されます。残念ながら、その不透明度を元に戻すことはできませんが、追加するだけです。それ以外に、CSSが要素内のテキストを選択する方法はありません。
あなたの場合、最善の解決策は、透明な背景画像(PNG付き)をdivブロックに適用することです。
別の解決策は、 このチュートリアルはSteven York で説明されているように、異なるボックスと配置を使用することです。
これはあなたの質問のほぼすべてに答えるべきです: http://css-tricks.com/non-transparent-elements-inside-transparent-elements/
最も簡単な解決策は、正しい色で半透明のPNGを作成し、それを背景画像として使用することです。
レイアウトに応じて可能な別の解決策は、テキストを別のレイヤーに配置し、半透明のパーツの上に配置することです。このような何かがうまくいくでしょう:
<div style="position: relative; background-image: url('your_image.jpg')">
<div style="opacity: 0.5; background-color: #fff; position: absolute"></div>
<div style="position: absolute">The text to go on top</div>
</div>
必要に応じて、独自の位置/サイズ(top
、left
、width
、およびheight
プロパティ)を追加する必要があります。