【发布时间】:2020-05-25 22:53:27
【问题描述】:
当我滚动时,我的移动设备底部的固定元素出现问题。看起来每次滚动时都会重新计算高度,因为移动设备上的文档高度增加了。
我认为原因是地址栏淡出并且文档视口变大了。我进行了很多搜索并尝试了不同的解决方案,例如将height: 100% 设置为html 和body,但没有任何成功。
这是一个 GIF,显示我在 chrome 浏览器中在手机上的页面上滚动。顶部透明的东西是地址栏:
这是我的实际代码:
#wrapper {
position: fixed;
background: darkcyan;
color: #fff;
bottom: 0;
left: 0;
right: 0;
top: calc(100% - 100px);
width: 100%;
}
#bottom-element {
height: 50px;
position: fixed;
background: black;
display: block;
bottom: 0;
width: 100%;
left: 0;
right: 0;
}
#title {
text-align: center;
padding: 15px;
height: 20px;
border-bottom: 1px solid white;
}
#entries {
display: flex;
flex-direction: column;
overflow: scroll;
overflow-x: hidden;
}
.entry {
padding: 15px;
background: cadetblue;
}
<div id="wrapper">
<div id="title"></div>
<div id="entries">
<div class="entry">Test</div>
<div class="entry">Test</div>
<div class="entry">Test</div>
<div class="entry">Test</div>
<div class="entry">Test</div>
<div class="entry">Test</div>
<div class="entry">Test</div>
</div>
</div>
<div id="bottom-element"></div>
这个想法是从底部到屏幕的80% 展开一个div。那么我该如何解决这个问题呢?我正在动态更改顶部值以扩展我的元素,所以如果有任何解决方案可以保持我的布局会很好。
【问题讨论】:
-
@Moob 这也与我的元素有关吗?因为他说的是背景图片……
-
也许吧。这肯定是地址栏隐藏的问题。可能在答案中有用。我撤回了我的近距离投票。
-
您也可以考虑防止地址栏隐藏:stackoverflow.com/questions/18061308/…
-
不能用给定的代码重现任何东西,可能是
#wrappertop 值的问题,因为它是一个计算