【发布时间】:2021-11-12 20:00:05
【问题描述】:
我正在制作一个有 3 个抽屉的网站 - 元素绝对位于屏幕外,一个在左侧,一个在右侧,一个在底部。
看看这里的网站,看看我在说什么 https://sjbuysse.github.io/javascriting/index.html
单击底部的Pop up! 切换按钮,您会看到div 和一些inputs 出现。像往常一样,当您在移动浏览器中单击其中一个inputs 时,会显示一个键盘,从而调整网站的大小。当屏幕上的输入足够高(键盘上方)时,这在我的网站上没有问题。但是如果我没有向下滚动太多,并且键盘在选定的input 元素上方弹出,我的整个网站都被向上推,并且在我的<html> 内容下创建了一些空白空间。即使在我关闭键盘之后,那个空白区域仍然存在。
我会用截图告诉你我的意思:
情况一:当输入高到可以超过键盘的时候,没问题。
情况2:屏幕输入不够高,键盘会弹出,网站内容被推上去
即使我隐藏了键盘,网站中的空白仍然存在
经过大量调试后,我找出了导致此问题的原因:我网站上的右侧抽屉(您可以使用+ 符号打开的那个)以某种方式通过绝对定位导致了此问题。这个抽屉的 css 如下所示:
.create-drawer {
height: 100vh;
text-align: left;
color: #EEE;
width: 200px;
background-color: #1C262F;
position: absolute;
top: 0;
transition: transform 0.3s ease-out;
z-index: 2;
box-sizing: border-box;
right: 0;
transform: translate(200px, 0);
}
只需注释掉position: absolute 行,问题就解决了。
谁能给我解释一下?
此外,左侧抽屉(带有过滤器符号)具有完全相同的 css(除了它位于左侧),并且不会干扰任何东西。我也很想了解这是怎么可能的。
【问题讨论】: