I\'ve used vh (viewport units) css in one of my projects but in mobile safari it doesn\'t work. It seems like Safari doesn\'t know what to do with vh, but it works fine in o
I also had this issue, here is my solution.
This is equals to height:100vh;
document.getElementById("your-element").style.height = window.innerHeight + 'px';
You can also use below code with jQuery,
$('your-element').height(window.innerHeight + 'px');
Checked with safari :)
I used this CSS only hax today and it worked. iOS 8.2 iPhone Safari :
html, body {
...
width: -webkit-calc(100% - 0px);
...
}
Thought: Using calc seems to get Safari to convert units to px itself. Now my page is correctly full-bleed on Chrome and Safari on iOS.
There's a pretty good answer to this across at CSS Tricks - https://css-tricks.com/the-trick-to-viewport-units-on-mobile/
.my-element {
height: 100vh; /* Fallback for browsers that do not support Custom Properties */
height: calc(var(--vh, 1vh) * 100);
}
// First we get the viewport height and we multiple it by 1% to get a value for a vh unit
let vh = window.innerHeight * 0.01;
// Then we set the value in the --vh custom property to the root of the document
document.documentElement.style.setProperty('--vh', `${vh}px`);
I came across this fix today: https://github.com/rodneyrehm/viewport-units-buggyfill It checks every element for a vh/vw unit and turns it into px. Well worth checking out I think.
If you need a fullscreen div on mobile browsers, try using wrapper with fixed position and height set to 100%. Then set 100% height to your popup. You can adjust the position of the wrapper and popup in a way you like with top, left, right, bottom properties, as well as height and width.
These eliminates the problem with mobile browsers address bar autohiding in my case where I had to create a fullscreen popup on mobile chrome.
My version is "querySelector" because: if I use class of element "getelementbyid" not worked.
And this way js is most universal if jQuery libraries are not connected.
document.querySelector("your-element").style.height = window.innerHeight + 'px';