固定的div高度:滚动不满屏幕时在移动设备上为100%

时间:2018-07-05 13:02:16

标签: html css

我有一个敏感的nav元素。 navposition: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中)

3 个答案:

答案 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的固定元素固定在视口的顶部和底部。

不幸的是,当移动设备上的视口发生变化时(地址栏缩小时),固定位置元素不会响应。