我有一个敏感的nav
元素。 nav
是position:fixed
。单击时,它具有top:0 bottom:0
(我也尝试过height:100%)left:0 and right:0
。因此nav元素会覆盖整个屏幕。
但是,如果我在移动设备上向下滚动,浏览器地址栏(iPhone上的Safari和Chrome)会变短或消失,从而使视口变高。但是nav元素的高度保持不变,这意味着它不再覆盖整个屏幕,并且底部有一个条带显示了后面的内容。
我该如何解决? (我也尝试过height:100vh
)。我不想使用JS或JQ。
谢谢
nav {
position:fixed;
top:0;
bottom:0;
left:0;
right:0;
background-color:black;
}
<nav>
<ul>
<li><a href="about.html">About</a></li>
<li><a href="services.html">Services</a></li>
<li><a href="workshops.html">Workshops</a></li>
<li><a href="blog.html">Blog</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</nav>
基本上,该元素的高度没有增加以响应较大的视口高度。元素高度保持不变,尽管浏览器地址栏消失了(在Chrome中)
答案 0 :(得分:1)
您可以尝试将overscroll-behavior设置为不设置任何内容,有关更多信息,请参见此有用的文章: https://www.smashingmagazine.com/2018/08/scroll-bouncing-websites/
答案 1 :(得分:0)
您的html是否包含视图标记? 像:
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
,然后min-height
。另外,使用应用容器div是一个不错的选择。
通常,如果它是移动设备,则最好设置一个应用容器div,例如:
html, body {
min-height:100%;
height:100%;
}
#app-container {
position:absolute;
overflow:hidden;
top:0; left:0;
bottom:0; right:0;
}
nav {
position:fixed;
top:0; left:0;
min-height:100%;
background:#123;
}
<div id="app-container">
<nav>
<ul><li>something</li></ul>
</nav>
</div>
这可能会有所帮助:http://coderchronicles.org/2016/04/12/create-a-full-screen-layout-for-mobile-web-apps/
答案 2 :(得分:0)
固定的位置元素固定在视口中。因此,顶部和底部0的固定元素固定在视口的顶部和底部。
不幸的是,当移动设备上的视口发生变化时(地址栏缩小时),固定位置元素不会响应。