作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须构建一个从屏幕右侧滑动的导航栏。它必须覆盖整个屏幕。问题是在手机中,像chrome这样的浏览器在底部有这个工具栏,它隐藏了页面的某些部分。这是不可行的,因为我还必须在底部显示一些联系信息。
对此的修复是使用 -webkit-fill-available。
但是,我的导航栏和汉堡菜单行的 CSS 是:
.hamburger-row {
position: fixed;
height: 75px;
}
.nav-menu-div {
position: fixed;
height: calc(100vh - 75px);
}
height: calc(-webkit-fill-available - 75px);
最佳答案
有一个 hacky 解决方法,但它需要使用 Javascript 来帮助 CSS。这里有很好的描述:https://css-tricks.com/the-trick-to-viewport-units-on-mobile/#css-custom-properties-the-trick-to-correct-sizing
在您的网站中,您需要添加此 JS:
function appHeight() {
const doc = document.documentElement;
doc.style.setProperty('--vh', (window.innerHeight*.01) + 'px');
}
window.addEventListener('resize', appHeight);
appHeight();
对于您在 CSS 中的情况,它看起来像:
.nav-menu-div {
position: fixed;
height: calc(100vh - 75px);
height: calc(calc(var(--vh, 1vh) * 100) - 75px);
}
关于javascript - 如何在 CSS 中对 vendor 前缀属性执行 calc 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62114804/
我是一名优秀的程序员,十分优秀!