画像をもう少し暗くしたいな…
こんなときphotoshopなどの画像編集ソフトを使えば画像を加工することができます。
でも
- 画像編集ソフトで加工するのはちょっと手間に感じる
- もっと手軽に画像の雰囲気を変えたい、明暗を調節したい
このように感じることもあるのではないでしょうか。
こんなとき画像にマスクをかけることで画像の色味を変更したり明暗を変えることができます。
今回はHTMLとCSSだけで画像にマスクをかける方法について解説をしていきます!
- 疑似要素を利用
この方法を知っているだけで、背景やサイトの雰囲気に合わせて画像に変化を加えることができます。
ちょっとした画像の加工に使えるテクニックなのでぜひマスターしてくださいね!
- 画像編集ソフトを使うことなくHTMLとCSSだけで画像にマスクをかけることができるようになる
最後まで読んで、ぜひ実践してみてくださいね^^
それでは早速解説をしていきます!
疑似要素を利用
疑似要素を使っていきましょう。
今回は画像を暗くするために黒いマスクをかける例を見ていきます。
参考コードは以下。
-- HTML --
<div class="image-container">
<img src="image.jpg" alt="猫の画像">
</div>
-- CSS --
.image-container {
position: relative;
}
.image-container img {
display: block;
width: 100%;
max-width: 100%;
}
.image-container::before {
content: '';
position: absolute;
inset: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5); /* マスクの色と透明度 */
}
上記コードについて順番に見ていきましょう。
- 疑似要素のbeforeを使いコンテンツを生成する
- insetプロパティを使い画面全体に広げる
- background-colorでマスクの色を指定する
1. beforeを使いコンテンツを生成する
まずは疑似要素のbeforeを使いコンテンツを生成します。
主な疑似要素として以下2つは覚えておきましょう!
- before
- after
上記コードではbeforeを使いコンテンツを生成し、幅と高さを100%に設定して親要素いっぱいに広げています。
2. insetプロパティを使い画面全体に広げる
insetはtop、right、bottom、leftを一括指定できるCSSプロパティです。
上記コードではinsetを0に指定して親要素の上にピッタリ被さるようにしています。
「inset:0;」は以下のように書き換えることもできますね^^
-- CSS --
.image-container::before {
/* inset: 0; */
top: 0;
right: 0;
bottom: 0;
left: 0;
}
3. background-colorでマスクの色を指定する
コンテンツに背景色をつけてマスクの色を指定していきます。
今回の例では黒いマスクを被せたいので以下のようなコードになりますね^^
-- CSS --
.image-container::before {
content: '';
position: absolute;
inset: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
}
メリットとデメリット
この方法を使うメリット、デメリットについても解説をしていきます!
メリット
- 手軽に画像に加工を加えることができる
- CSSのためいつでも変更が可能
1. 手軽に画像に加工を加えることができる
一つ目のメリットとしては手軽に画像にマスクをかけることが可能ということです。
CSSだけで画像を調節できるのは大きなメリットですね。
CSSだけで画像を調節できるため工数がかからず時間が短縮できます。
2. CSSのため簡単に変更が可能
CSSで調節しているため簡単に変更が可能です。
画像編集ソフトで編集するとなると意外と時間と手間がかかっちゃいます。
画像編集ソフトを使うとなると、「ソフトの立ち上げ、編集、ダウンロード、アップロード」などと何かと手間がかかります。
その手間が省けるのは大きなメリットだと思います。
デメリット
- 細かい調節ができない
1. 細かい調節ができない
あくまで簡易的にマスクをかけるだけのため、細かい調節ができません。
全体的な明暗の調節、色味の変更などは可能ですが、特定の部分だけを変更したり、微調整をすることができません。
細かい調節を加えたいときは画像編集ソフトで編集するしかないってことね。
まとめ:画像全体にマスクをかけるだけならCSSで実現可能!
いかがでしたでしょうか?
画像にマスクをかけるだけならCSSで実現が可能です。
しかし、細かな調節などをするとなるとやはりphotoshopなどの画像編集ソフトが必要になってきます。
実際に制作をしていると
文字が見えづらいから背景を少し暗くして文字を目立たせたいな。
なんていう場面は意外と出てきます。
こんなとき今回の方法は使えるテクニックになりますので、ぜひ覚えておいてくださいね!
今回は以上になります。ではまたお会いしましょう^^