As a web programming language, CSS is said to be almost perfect. Web designers love to show off what they can do with CSS; perhaps you remember the photo-realistic artwork competitions made with CSS a few years ago. Even with the all the versatility CSS provides, there are still a few nagging things that front-end developers run into from time to time, and one of them is related to how viewport units are measured, expressed, and declared.
When designing mobile websites using CSS, you may encounter issues with the vertical scroll bars that somehow end up triggering a horizontal scroll bar to appear when at least one element stretches from one end of the smartphone to the opposite side; please note that we are talking about portrait mode orientation. The problem is with the viewport units that you use for the purpose of arranging a footer that is meant to be fixed at the bottom of the page. If the page is a form and the touchscreen keyboard pops up, the footer will be covered.
In CSS, you define a page size with body tags. For example, if your page is set to 960 pixels wide, each element inside the body tag will be 960 pixels wide. However, when a vertical scroll bar appears, it will likely be set to the height of the html tag. We can confirm this behavior with two code snippets. The first one consists of just the body tag. The second one contains the body tag along with a div that occupies the remaining space. The second example would assing the total height of the body tag plus the div, which should exceed the height of the viewport because the body tag in the second example is 960 pixels high. As you know, 960 pixels high is the default height for a typical desktop. However, as soon as you tap on the keyboard on the smartphone to write an email or compose a text, the height of the viewport is 768 pixels high, not 960 pixels high.
The html tag determines the height of the viewport on the mobile website. For example, the text height of the body tag is 480 pixels tall, but it is set to 760 pixels tall when the body tag is inside the html tag. For more information click here https://v.redd.it/09cn938eycr71.