CSSで背景のみ透過させる方法
CSSで背景のみ透過させようとしたときに、文字も透過してしまったことはありませんか?
そんなときはopacityではなくrgbaを使うと解決できますよ!
今回はその方法について詳しくご紹介します。
CSSで背景のみ透過させる方法
opacityを使った場合
まずはopacityを使った時の動作確認から。背景を透過させたい要素にopacityをあてると透過します。
数値は小さいほど透過具合が薄くなるので、少しずつ調整しましょう。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .opacity { width: 150px; height: 150px; background-color: red; opacity: 0.5; } </style> </head> <body> <div class="opacity"> <h1>サンプル</h1> </div> </body> </html>
ただ、これだと文字まで透過していることがわかります。opacityを0.1にするともっとわかりやすいかも。
これを解決するためにrgbaを使います。
rgbaを使った場合
rgbaはCSS3で新しく追加された色の指定方法で、RGBにalphaが加わったものです。
この部分をopacityのように指定して透過してあげると、文字が透過せずにすみます。実際に見てみましょう。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .opacity { width: 150px; height: 150px; background-color: rgba(255, 0, 0, 0.5); } </style> </head> <body> <div class="opacity"> <h1>サンプル</h1> </div> </body> </html>
これも透過度を0.1にするともっとわかりやすいですね。
これで文字を透過させず、背景のみ透過させることに成功しました!やったね
さいごに
これって本当に知ってるか知らないかの世界で、もしopacityとrgbaのどちらかしか知らないと、もう一方で出来ることができなくなるので大変ですよね・・・。
自分も最初はopacityしか知りませんでしたし・・・。