
CSSでブレンドモードが指定できるプロパティmix-blend-modeを試してみる
CSSには様々なプロパティが続々と追加されていますが、今回はその中でも比較的モダンなプロパティである「mix-blend-mode」についてまとめてみたいと思います。このプロパティですが描画モードを指定できるものとなり、PhotoshopやAdobeXD、Sketchなどのデザインツールでレイヤーを重ねた時などによく使われるレイヤーを描画モードを設定する機能と同じものになります。描画モードについて詳しくは過去記事「Photoshopで登場するレイヤー描画モードの種類について」をご参照ください。
描画モードを指定することで、それぞれの要素を重ねた時の見え方に変化をつけられますので、デザインの表現や馴染ませたりする時などに役立ちます。下記はデザインツールで描画モードを設定している様子ですが、こういったことがCSSでも出来るようになります。
これまではデザインツールでビットマップ画像として書き出していたものが、CSSで表現できるようになるということになります。こうすることで、例えばCSSアニメーションと組み合わせて徐々に変化させたり、JavaScriptと組み合わせてイベントトリガーに合わせて変更するということが可能になります。
使い方もシンプルで、ベースレイヤーとなる要素の上に合成レイヤーとなる要素を重ねるように配置し、表面に配置される要素に対して、下記のようにmix-blend-modeプロパティに描画モードの値を指定するだけでOKです。
いかがでしょうか、このように要素同士を重ねた時の描画モードもCSSで設定できるようになります。本来はデザインツールで調整していたことが直接HTML上で変更できるのはかなり便利ではないでしょうか。またデザイン表現の幅も広がりそうですね。一部ブラウザは対応していないのですが、モダンブラウザに限れば問題なく使えますので、ぜひ積極的に取り入れていきたいものですね。 (参考にさせて頂いたサイト) mix-blend-mode - CSS: カスケーディングスタイルシート | MDN
これまではデザインツールでビットマップ画像として書き出していたものが、CSSで表現できるようになるということになります。こうすることで、例えばCSSアニメーションと組み合わせて徐々に変化させたり、JavaScriptと組み合わせてイベントトリガーに合わせて変更するということが可能になります。
使い方もシンプルで、ベースレイヤーとなる要素の上に合成レイヤーとなる要素を重ねるように配置し、表面に配置される要素に対して、下記のようにmix-blend-modeプロパティに描画モードの値を指定するだけでOKです。
// HTML
<div>
<img class="base-layer" src="base.jpg" alt="">
<img class="blend-layer" src="blend.jpg" alt="">
</div>
// CSS ※一部抜粋
.blend-layer {
mix-blend-mode: overlay;
}
今回はこちらの写真素材と合成レイヤーの画像を使って、実際に描画モードをCSSで指定してみたいと思います。合成レイヤーの画像は変化がわかりやすいように3原色とグレースケールをそれぞれグラデーションにしたものを用意しています。

















いかがでしょうか、このように要素同士を重ねた時の描画モードもCSSで設定できるようになります。本来はデザインツールで調整していたことが直接HTML上で変更できるのはかなり便利ではないでしょうか。またデザイン表現の幅も広がりそうですね。一部ブラウザは対応していないのですが、モダンブラウザに限れば問題なく使えますので、ぜひ積極的に取り入れていきたいものですね。 (参考にさせて頂いたサイト) mix-blend-mode - CSS: カスケーディングスタイルシート | MDN
categories
- WordPress(61)
- JavaScript(49)
- Vue.js(48)
- CSS(46)
- jQuery(34)
- Nuxt.js(22)
- Sass(21)
- Gulp(17)
- webpack(16)
- PHP(14)
- HTML(14)
- GSAP(11)
- React(10)
- Vite(9)
- Pug(9)
- Laravel(8)
- Cordova(8)
- Linux(7)
- Next.js(6)
- Apache(5)
- Shopify(4)
- REST API(4)
- Node.js(4)
- Smarty(3)
- Git(3)
- JSON(3)
- その他プログラミング(3)
- Google Apps API(3)
- Bootstrap(3)
- 環境構築・システム(3)
- TypeScript(2)
- EJS(2)
- RMS(2)
- Docker(2)
- Instagram API(2)
- Excel VBA(2)
- SVG(1)
- Dart(1)
- ECカートASP(1)
- Markdown(1)
- AMP(1)
- Nginx(1)
- XML(1)
- shellscript(1)
- Ruby(1)
- MySQL(1)