IT30

文字を透過させずに背景画像(background-image)を透過させる方法

文字を透過させずに背景画像(background-image)を透過させる方法

2019.07.09 更新

個人的によく使うbackground-imageですが、先日background-imageのみを透過させたいことがあったのでCSSをメモしておきたいと思います。

 

文字を透過させないで背景画像のみを透過させる

 

どうしてもやってしまいがちなのがbackground-imageを指定したクラスにopacityを追加してしまう方法。

これでもbackground-imageは透過するのですが、上にテキストが入る場合はテキストまで透過してしまいます…。

ハナから透過したimageを用意すれば良いのですが、それでは芸がないのでCSSで記述出来るようにしたいと思います。

 

htmlに一手間加える

考え方としてはシンプルで【上に透過したレイヤー(白)を乗せる】という方法です。

<div class="background">
  <div class="mask">
    <p class="text">透過させたくないテキストやコンテンツが入ります</p>
  </div>
</div>
.background {
  background-image: url('background-image.jpg');
  width: 500px;
  height: 500px;
  background-size: cover;
  background-repeat: no-repeat;
}
.mask {
  height: 100%;
  background: rgba(255,255,255,0.3);
}

もちろん.maskのbackgroundのrgbaを白以外に指定することも可能です。

個人的によく使うのでメモしておきます。

マレーシアの日系IT企業で働く30代のウェブエンジニアの備忘録ブログです。

基本は過去わからなくて悩んだコーディングや諸々の設定方法などをメモ代わりに書き留めています。

ウェブコーディングやワードプレスの勉強中の方や同じ問題で悩んでいる方のお力になれたら嬉しいです。

ウェブサイトの制作依頼をマレーシアのローカル企業にご依頼されて大変な思いをしたことはございませんか?

安価が魅力のマレーシア企業ですが、お国柄どうしても…
「期日を守らない」「連絡がおろそか」「上手くコミュニケーションが取れない」
などのお悩みをかかえることがあると思います。

かと言って日系の企業はマレーシアの企業よりも値が張るため予算的に合わない。

私もマレーシアで働くからこそ、その大変さを理解した上でご提案があります。