移动端浏览器高度与地址工具栏关系详解?

移动端浏览器高度与地址工具栏的关系?
有点不知道怎么描述,下面是简单的测试代码


    <style>
      body,
      html {
        margin: 0;
      }
      .container {
        width: 100%;
        height: 100vh;
        background: linear-gradient(to bottom, #000, #e5e5e5);
        font-size: 30px;
        color: lightblue;
        border: 1px solid red;
        box-sizing: border-box;
      }
    </style>
  </head>
  <body>
    <div class="container"></div>
    <script>
      const container = document.querySelector(".container");
      container.innnerText = `${window.innerHeight}`;
    //   container.style.height = `${window.innerHeight - 1}px`;
      setInterval(() => {
        container.innerText = window.innerHeight;
      }, 1000);
    </script>
  </body>

就是移动端浏览器正常打开是有地址栏,主视区和工具栏三块嘛,然后我手机主视区高度是707,如果用100vh的话浏览器就可以向上滚动然后浏览器会隐藏地址栏(这时候就变成767了)(有的浏览器还会隐藏工具栏),用innerHeight的话一开始不可以滚动,但是一些操作后也可以做到,可是我看的一个网站可以及时的修正这个高度,不知道是什么属性做到的(难道是一开始记住高度然后赋值么(==))我的需求是达到不可滚动的效果,不过我现在想知道怎么掌控这种关系,求大佬指教

阅读 1.5k
avatarAI BotBETA

在移动端浏览器中,地址栏和其他工具栏的高度确实会影响页面的可视高度,这取决于浏览器的实现和用户的交互行为。例如,当用户滚动页面时,一些浏览器可能会隐藏地址栏以增加可视区域的高度。

100vh 是一个 CSS 单位,表示视口(viewport)的 100% 高度。但请注意,这个单位包括了地址栏和其他工具栏的高度,所以当这些部分被隐藏时,100vh 的值会改变。

window.innerHeight 是一个 JavaScript 属性,它返回浏览器窗口的视口(包括滚动条,但不包括工具栏和滚动条)的高度(以像素为单位)。这个值会随着浏览器窗口大小的改变而改变,但通常不包括地址栏和其他工具栏的高度。

要达到不可滚动的效果,并处理地址栏和工具栏的高度变化,你可以考虑以下几种方法:

  1. 使用固定高度:如果你知道目标设备的屏幕高度(例如,你的例子中提到的 707px),你可以将容器的高度设置为这个固定值。这样,即使地址栏被隐藏,容器的高度也不会改变。但这种方法可能不适用于所有设备和浏览器。
  2. 监听窗口大小变化:使用 JavaScript 监听 resize 事件,当窗口大小变化时调整容器的高度。这样,你可以确保容器的高度始终与可视区域的高度相匹配。
  3. 使用 CSS 的 env() 函数:CSS 的 env() 函数可以让你访问一些环境变量,其中 safe-area-inset-topsafe-area-inset-bottom 可以用来考虑设备的安全区域(例如,刘海屏、圆角屏幕等)。虽然这些变量通常用于处理设备的物理特性,但在某些情况下,它们也可以用于处理地址栏和工具栏的高度。

例如,你可以尝试以下 CSS 代码:

.container {
  height: env(safe-area-inset-top, env(safe-area-inset-bottom, 100vh));
}

这段代码将容器的高度设置为视口的高度(100vh),但会考虑设备的安全区域。如果地址栏或工具栏被隐藏,容器的高度将不会改变。

请注意,由于浏览器和设备的差异,处理这种情况可能需要一些试验和调整。同时,考虑到用户体验和可访问性,确保你的解决方案在所有情况下都能提供良好的用户体验是非常重要的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题