I have an app that is full-screen
<div class="h-screen flex flex-col">
<div>
Header
</div>
<div class="flex-1 overflow-y-auto">
Main
</div>
<div>
Footer
</div>
</div>
This works normally.

In the phone browser, the bottom menu goes out of the page. However it works in full-screen mode.

I could not solve it. Can anyone guide me?
tldr: change h-screen to h-dvh
Update
@rozsazoltan pointed out that we don't need to use an arbitrary value (h-[100dvh]) anymore because in Tailwind v3.4.0 they added svh, lvh, and dvh values to the default height/min-height/max-height theme.
I was scrolling through YouTube and Kevin Powell happened to release a video about these units just a day after my original answer. He does a good job at explaining these dynamic units and some of the resons why you'd want to use one over the other. I'd suggest giving it a watch.
Original:
This is beacuse of the way mobile browsers handle the vh unit. You can read more about it in this Stack Overflow answer to a similar issue.
While the answer I shared suggests using Javascript to set the height, there is a relatively new css unit called dvh. It works like vh, but it takes into account the url bar that shows/hides on mobile browsers when you scroll. It's current support is promising.
Simply changing the h-screen to h-[100dvh] should solve your issue.
This is also a good answer to reference when if you want to learn more about dvh and the other dynamic units.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With