Topics

トピックスお知らせやちょっと役に立つ読みものなど

Loading...
開発ブログ

2024.10.20

最終更新:2026.07.31

【CSS】Safariでmix-blend-modeがoverflow: hiddenによって効かなくなる場合の対処法

タイトル通りですが、mix-blend-modeをかけたい要素の親要素もしくは祖先要素にoverflow: hidden;が付いていると、特にSafariでmix-blend-modeが効かなくなるバグ(仕様?)があるようです。

対処法

mix-blend-modeをかけたい要素の親要素に transform: translate3d(0, 0, 0); を付けると改善する可能性があります。

例1. 親要素にoverflow: hidden; が付いている場合

.parent {
  overflow: hidden;
  transform: translate3d(0, 0, 0); // ←これを追記
}
.child {
  mix-blend-mode: multiply;
}

例2. 祖先要素にoverflow: hidden; が付いている場合

.ancestor {
  overflow: hidden;
}
.parent {
  transform: translate3d(0, 0, 0); // ←これを追記
}
.child {
  mix-blend-mode: multiply;
}

原因

理由は不明ですが、overflow: hidden;を付けた要素と同じスタックコンテキスト(レイヤー)にあるmix-blend-modeが効かなくなるようです。(スタックコンテキストの説明は割愛しますが)

translate3dを入れることにより明示的に親のスタックコンテキストに組み込まれ、かつハードウェアアクセラレーションが有効になることにより改善するのでは……??という仮説を立てています。

おわりに

解決方法があるとはいえ不便なことは確かなので、解消されることを願っております……。

WEB製作者、IEのサポート終了で苦しまなくなった代わりにSafariで苦しむことが増えてえーんってなりがち。

よろしければお試しください。

参考記事

https://stackoverflow.com/questions/70891365/css-mix-blend-mode-difference-issue-in-safari

https://qiita.com/yukihirog/items/df2c940cd725ae726cc5

https://gsap.com/community/forums/topic/21802-issues-with-safari-perspective-mix-blend-mode/

Writerこの記事をかいたひと

みなせしゅん

ディレクター/エンジニア/デザイナー/

1994年生まれ、千葉県育ち。2019年より個人事業主として活動。
プランニングやディレクション、フロントエンドやバックエンドのコーディング・プログラミング、WEBデザインからグラフィックデザインまで、わりとなんでもやる人。

Related Topics関連記事

【devise】OmniAuthを使用したTwitterログイン認証でハマったら試すこと【Ruby on Rails】

開発ブログ

2022.05.29

【devise】OmniAuthを使用したTwitterログイン認証でハマったら試すこと【Ruby on Rails】

WEBサイトリニューアルの手順や流れを実際の事例に沿って紹介してみた(ver. 2021)

開発ブログ

2021.06.10

WEBサイトリニューアルの手順や流れを実際の事例に沿って紹介してみた(ver. 2021)

bundle install の際 psychのインストールに失敗する 【Windows + Ruby3.2以降 + Rails7】

開発ブログ

2023.12.23

bundle install の際 psychのインストールに失敗する 【Windows + Ruby3.2以降 + Rails7】

【初心者向けSourcetree】グローバル無視設定ファイルを作成しますか?と聞かれたら【Git】

開発ブログ

2020.08.07

【初心者向けSourcetree】グローバル無視設定ファイルを作成しますか?と聞かれたら【Git】

< PrevBack to listNext >