我正在为Android / Chrome和iPad / Safari编写HTML5应用。在其中我创建了一个带溢出的DIV:auto和top:XXpx。这是一个示例:
<div id="divVerticalList" style="width: 180px; height: 600px; position: absolute; left: 100px; top: 200px;">
<div id="divVerticalListUL" style="overflow: auto; width: 100%; height: 93%;">
<ul id="distDV" class="pickList">
<li id="distDVu30" value="30" class="evenLi">+30</li>
如果top:0px,则divVerticalListUL出现在屏幕顶部,滚动条从divVerticalListUL的顶部开始运行。滚动条的大小适当,用于显示DIV高度中列表内容的分数。滚动列表即可。
如果顶部:100px,则DIV显示为100像素,滚动条从DIV开始向下100像素。它应该从DIV开始的地方开始。滚动条高度应该是它应该是的。当我滚动列表时,滚动会经过预期的高度,但100px太低。滚动条的底部延伸到DIV底部的下方。
明显的解决方法是使用top:0px。有更好的答案吗?
提前致谢, 杰罗姆。
答案 0 :(得分:0)
在没有看到现场演示的情况下调试它真的很难,但是这里有。我假设您在divVerticalList上设置top:0px,这是有道理的,您已将divVerticalList列表设置为绝对位置,这意味着它在文档坐标中将divVerticalList的顶部设置为100px。这意味着divVerticalListUL也是距文档顶部100px。
93%的高度计算基于600px的93%,因此当你设置顶部:100px时,视口的末端是700px(600 + 100px),但你仍然是600px高。内部元素的大小仍然是600%= 558像素的93%,在大多数情况下仍然会从屏幕上滑落。