【CSS】filterの使い方とは?フィルターの種類と複数のフィルターが効かないときの対処法も解説

公開日: 2022.02.17
更新日: 2024.01.03
filterの使い方とは

CSSプロパティのfilterを使うことで、画像に変化をつけることができます。

使いこなせるようになれば、簡単な加工をわざわざPhotoshopなどでする必要が無くなります。

今回は、CSSプロパティのfilteを使って画像に変化を加えたい、という方のために、

  • filterとは
  • filterの種類について
  • filterを実際に使う方法

以上の項目に沿って、解説していきますね。

この記事を読めば、CSSプロパティのfilterを使って画像を変化させる方法がわかるようになりますよ。

ぜひ最後まで読んでくださいね!

CSS filterとは?

CSSのfilterは、画像などの要素にフィルターをかけ、彩度や明度、色相などを変更することができるプロパティです。

色の調整だけでなく、ぼかしを加えたり透明度を変えることも可能です。

Webページに使用する画像を加工したい場合には、Photoshopなどのソフトを利用する方法がありますが、簡単な加工であれば、CSSで行うことができます。

具体的には、以下のように記述します。

<img src="sample.jpg" class="example">
.example {
  filter: contrast(60%);
}

上記の指定では、画像のコントラストを60%にしています。

filterの種類を紹介

filterで指定できるものは、先ほどのcontrastを含めて全部で10種類あります

ここでは、それぞれの使い方を解説していきましょう。

blur(ぼかし)

blurを使うと、画像のぼかしの具合を指定することができます。

.example {
  filter: blur(2px);
}

単位はpxやemなどの単位になります。%は使用できないので注意してください。

実際に数字を入れてみて、どのくらいぼかしが入るのか確認しながら調整してみましょう。

brightness(明度)

brightnessは、画像の明るさを指定します。

.example {
  filter: brightness(150%);
}

100%が基準となっています。100%から大きくすると明るくなり、小さくすることで暗くなります。

単位なしで1を基準とした数値を入れることもできます。

1が基準となり、1より大きくすると明るくなり、0が一番暗くなります。

上記コードのbrightness(150%)は、1.5と同じ意味で、元の画像の1.5倍の明るさということになります。

contrast(コントラスト)

contrastは、画像のコントラストを指定します。

.example {
  filter: contrast(120%);
}

brightnessと同様に100%が基準となります。100%より大きくするとコントラストが上がります。

小さくするとコントラストが下がりますね。

コントラストとは、明るい場所と暗い場所の差のことで、contrast(0%)とすると、灰色一色の画像になります。

こちらも1を基準にして指定することができます。0で最もコントラストが低い状態ですね。

drop-shadow(ドロップシャドウ)

drop-shadowは、画像に影をつけることができます。

.example {
  filter: drop-shadow(3px 3px 5px rgba(0,0,0,0.7));
}

引数は4つあり、「X軸方向の位置」「Y軸方向の位置」「ぼかしの大きさ」「影の色」となります。

最初の2つは必須になります。位置を決めることで、画像とずらして影を加えることができます。

似たようなプロパティでbox-shadowがありますね。

こちらは背景が透過したpng画像であっても、要素の周りの四角に沿って影がついてしまいます。

filter: drop-shadow()は、画像の中のオブジェクトに影をつけてくれる点が優れていますね。

grayscale(グレースケール)

grayscaleは、画像にグレースケールをかけることができます。

.example {
  filter: grayscale(80%);
}

0%を基準とし、100%で完全にグレースケール(灰色のみで配色)された状態になります。

0から1までの値を指定する方法もあります。この場合、1が完全にグレースケールされた状態ですね。

hue-rotate(色相環)

hue-rotateは、色相を変更することができます。

.example {
  filter: hue-rotate(45deg);
}

値は色相環の回転を指定します。

degという単位を使用し、基準値は0degです。

180degで色相が反転し、360degで元の色相になります。360以上は一周以上しているので360で割った余りを指定したものと、同様の色相になりますね。

invert(階調の反転)

invertは、階調をどの程度反転させるかを指定します。

.example {
  filter: invert(100%);
}

0%を基準とし、100%で完全に階調が反転します。

0を基準として、0から1までの値を指定する方法もあります。

opacity(不透明度)

opacityは、画像の不透明度を指定します。

.example {
  filter: opacity(30%);
}

100%が最も不透明で元の画像が表示されます。

0%で完全に透明になります。

0から1までの値を指定する方法もあり、この場合0が最も透明になり、1が不透明になります。

saturate(彩度)

saturateは、画像の彩度を指定します。

.example {
  filter: saturate(160%);
}

100%を基準とし、100より大きくすると鮮やかになります。100より小さくすると彩度が下がり、暗い色になります。

0で無彩色になります。

filter: saturate(0%)とfilter: grayscale(100%)は同じ結果が得られるフィルターですね。

1を基準にして指定することもできます。0が無彩色になり、1以上で鮮やかになります。

sepia(セピア)

sepiaは、画像をセピア調にします

.example {
  filter: sepia(80%);
}

0%を基準とし、100%が最もセピア調になります。

0を基準にした0から1までの数値で指定することもできます。

filterの使い方

それでは、filterを使った実践方法を紹介していきましょう。

ここでは、「複数のフィルターをかける方法」と「アニメーションをつける方法」を解説します。

複数のフィルターをかける

半角スペースを空けてフィルターを並べることで、1つの要素に複数のフィルターをかけることができます。

.example {
  filter: contrast(50%) blur(3px);
}

上記では、50%のコントラストと3pxのぼかしを適用しています。

適用するフィルターはいくつでも可能です。色々な組み合わせを試してみてください。

複数のフィルターが適用されない場合

複数のフィルターをかけたつもりなのに適用されない、というときには、CSSでの書き方を確認してみてください。

.example {  
  filter: contrast(50%);  
  filter: blur(3px);  
}

複数のfilterプロパティを指定してしまうと、定義が上書きされ、最後に書いたものが有効になります

上記コードでは、ぼかしのみが適用され、コントラストは変化しません。

複数指定したい場合には、1つのfilterプロパティでまとめて記述しましょう。

フィルターにアニメーションをつける

transitionプロパティを組み合わせて使うことで、アニメーションを設定することができます。

.example {
  transition: 0.3s;
}
.example:hover {
  filter: brightness(60%) blur(3px);
}

上記コードはマウスをホバーさせるとフィルターがかかります。

transition: 0.3sをつけることで、ホバーしたときにふわっとフィルターがかかったような変化になります。

もちろん、ホバー以外をトリガーにしてフィルターをかけることもできます。ぜひ試してみてください。

まとめ:filterは目的に応じて使い分ける

今回は、CSSプロパティのfilterについて解説してきました。

filterで指定できるフィルターには種類があり、目的に応じて使用できるということでしたね。

複数のフィルターを組み合わせる方法なども紹介しました。

今回の記事が参考になれば幸いです。

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2024 WEBCAMP MEDIA Powered by AFFINGER5