div の背後にある背景画像の一部を表示するために、不透明度が 60% の div があります。不透明度が 60% であるため、その div のテキストは灰色で表示されます。
とにかくこのレベルをオーバーライドして、テキストを黒く見せる方法はありますか?
アドバイスをいただければ幸いです。
ありがとう。
私は自分のウェブサイトで過去にこれを実験しました。目的を実現する最も簡単な方法は、不透明度を 100% 未満 (つまり、部分的に透明) に設定した単一ピクセルの .PNG 画像を作成し、それを背景画像として使用することです。デフォルトでは、含まれている要素全体を塗りつぶします。そうでない場合は、CSS の background-repeat 属性が「repeat」に設定されていることを確認してください。
このようにすると、含まれている要素自体に透明度を設定する必要がないため、テキストの不透明度は影響を受けません。
驚くべきことに、半透明の単一ピクセルの .PNG を作成するためのツールがここにあるだけです。
不透明度は、div 全体とそのすべての子に適用されます。残念ながら、その不透明度を元に戻すことはできません。さらに追加するだけです。それに加えて、CSS が要素内のテキストを選択する方法はありません。
あなたの場合、最良の解決策は、透明な背景画像 (PNG を使用) を div ブロックに適用することです。たとえば、不透明度が 60% の白い 1 ピクセルの画像です。
別の解決策は、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
プロパティ)を追加する必要があります。