【问题标题】:Blank rectangle after window resize on mobile screens在移动屏幕上调整窗口大小后的空白矩形
【发布时间】:2014-12-22 08:21:27
【问题描述】:

我有一个带有postion:fixed 的容器,它占据了整个屏幕的大小:

.layer {
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: red;
}

问题是,当您在移动设备(iPhone 和 Android)上向下滚动页面时,地址行“缩小”(即窗口高度值增加),.layer 高度保持不变,导致其下方出现空白矩形直到您进一步滚动。

我尝试绑定一个 window.resize 事件来重新计算 .layerheight:

$(window).resize(function(){
    $('.layer').css("height", "100%");
});

但它没有影响。有什么想法吗?

【问题讨论】:

  • 想出了将其高度增加到 120%。如果有人能指出一个更优雅的解决方案,我会很高兴。
  • 我会使用top: 0; left: 0; bottom: 0; right: 0;。即使设置height: 100%; width: 100%应该做同样的事情,设置所有边有时可以解决不寻常的问题。
  • 你能把页面的网址发一下吗

标签: jquery html css fixed


【解决方案1】:

试试这个:

.layer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  background: red;
}

Flex而不是位置:固定:

body {
  display: flex;
  min-height: 100%;
}
.layer {
   flex: 1 0 auto;
   width: 100%;
}

【讨论】:

  • 刚想出这个,还没有影响。
  • 父容器是否有位置:relative?
  • 是的,它的主体与位置相对。
  • 您总是可以使用 display: flex 而不是 position: fixed,这在手机中更有效。我会用这个更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
相关资源
最近更新 更多