フロントの人の雑多メモ

【CSS】iPhoneのSafariでアドレスバーに被る部分が一瞬表示されないときの対処法

【CSS】iPhoneのSafariでアドレスバーに被る部分が一瞬表示されないときの対処法

iPhoneのSafariにおいて、CSSのfixedで固定した要素のアドレスバーに被る部分が一瞬表示されないときの対処法をご紹介。

具体的には、こうなってしまう現象。

スクロールしてアドレスバーが消えた瞬間、画面下部がガクッとなってしまっています。

対処法

CSSでfixedを指定している要素に以下を追記

transform: translateZ(0.01px);

具体的には、こういうCSSになると思います。

.view {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100lvh;
	background: url(img/img.jpg) 50% 50% / cover no-repeat;
	z-index: 2;
	transform: translateZ(0.01px); /*追記*/
}

すると解消されました。

※iOS16.5.1で検証

ちなみに、高さの指定には「lvh」を使っています。

「dvh」を使っていると解消されないのでご注意ください。

サンプル

一応、本ページにこの現象を再現したものを置いておきます。

よければ実機でご確認ください。

うまくいく例と

うまくいかない例です。

コメント

内容を確認の上、個人情報などは省いて掲載させていただきます。

直接送信されます。確認の上、「送信」してください。

シェア

Twitterでシェア Facebookでシェア LINEでシェア はてなブックマークでシェア