Ahmad Shadeed has done an extensive write-up on Viewport Units:
In this article, we will learn about CSS viewport units and how to use them, along with some use-cases and solutions for common issues. Let’s start and dig in!
Regarding Mobile Safari (iOS) not properly calculating
100vh the article mentions Louis Hoebregts’ solution which uses CSS Custom Properties to correctly set
1vh. In addition to that I can say I’ve had good results using Viewport Units Buggyfill in the past. A shame Apple still hasn’t fixed this issue.