0

我很困惑为什么这么少的 html + css 会让我的 $(document).height() 变得很大。似乎溢出容器没有完全工作。这是一个显示错误行为的 jsbin:http: //jsbin.com/omokin/1

<html>
<head>
<style>
#container {overflow:auto;height:500px;width:300px;}
#big {height:90000px;background-color: pink;}
</style>
</head>
<body>
<div id="container">
<div id="big">
</div>
<div style='visibility:hidden; position:absolute;'>x</div>
</div>
</body>
</html>
4

5 回答 5

3

position:absolute这是因为您在大 div 下的容器中放置了一个带有 a的 div。当您在示例中向下滚动到页面底部时,您会注意到带有 x 的隐藏 div 在那里。

http://jsbin.com/omokin/6/

如果您稍微更改顺序,position:absolute则不会将整个页面向下推。

<div id="container">
  <div style='visibility:hidden; position:absolute;'>x</div>
<div id="big">
</div>
</div>

换句话说,您不能在使用它的上下文中使用绝对位置。您需要删除绝对定位或将该 div 移到大 div 上方。

于 2013-08-04T02:47:39.177 回答
1

$(document).height()将是巨大的,因为你有一个更长的高度div#big (#big {height:90000px})

根据 .height 函数,它采用非常大的文档高度。

您可以查看此文档

于 2013-08-04T02:50:07.647 回答
0

它是正确的#big height:90000px#container height:500px你设置了#container overflow:auto。如果你不想scroll让 make overflowautohidden

于 2013-08-04T02:43:44.570 回答
0

http://jsbin.com/omokin/8/edit

您想将隐藏元素的 top 属性设置为 0,因为如果您查看 top 属性正在被大元素推送。

于 2013-08-04T02:45:04.403 回答
0

尝试position: relative#containerdiv 上设置。如果您不这样做并且您的标记具有您描述的结构,那么绝对定位的 div 将忽略其自身与其包含块(在这种情况下是根元素,因为没有定位的父级)之间的任何溢出属性影响。

于 2013-08-04T11:37:00.953 回答