Closed4

PC ブラウザとモバイルブラウザで svh の挙動が違う気がするので調べる

sasumasasasumasa

あるサイトを作っている際に、Android Chrome では表示が崩れるという現象が起きた。

フルページスクロールのサイトなのだが、挙動としてはブラウザバーが縮小する時に前のページ(セクション)が見切れるというのだ。

これってどういうことなのだろう、と調べた時に PC ブラウザとモバイルブラウザの svh の挙動が違いそうだったのでメモしておく。

sasumasasasumasa

そもそもこのバグが起きたのは PC ブラウザで開発をしていたからで、PC ブラウザではブラウザバーが引っ込んでもいい感じに要素の高さがリサイズさせられた。

ちなみにうろ覚えだけど LINE ブラウザ(Android)もブラウザバーが引っ込むのだけど、それも問題なく動いていたはず。

しかし Android Chrome だけは元のサイズ(ブラウザバーありきのサイズ)のままなので、ブラウザバーが引っ込むと前のページがちょっと見えてしまうという。

sasumasasasumasa

最初に思いつくのは「dvh にするのが正しいのでは」なのだが、dvh だと何か別の挙動で困ることがあった気がした(忘れた)

sasumasasasumasa

そのサイトでは最後のページだけがフルページスクロールじゃないので、dvh にすると困るからだった。
最後のページは親要素だけを 100dvh にして、子要素で overflow: scroll にすることを次に考えたんだけど、子要素を大きく下から上へスワイプするとなぜか親要素ごと動いて前のページが見えてしまう...

このスクラップは2024/02/14にクローズされました