Css 为什么元素的样式为;高度:100%“;似乎是>;100%?

Css 为什么元素的样式为;高度:100%“;似乎是>;100%?,css,browser,Css,Browser,我有一个页面,当页面加载时,我在所有内容上放置一个绝对DIV,并带有“高度:100%”,表示“页面正在加载…” 但是,从滚动条上看,页面的高度是100%+内容的高度 一旦页面加载且覆盖绝对定位DIV设置为display:none,这将立即消失 这在Firefox3、Chrome和IE6中都会发生 有没有关于如何提高身高的想法:100%,只有100%,而不是更多? <html> <head> <style type="text/css">

我有一个页面,当页面加载时,我在所有内容上放置一个绝对DIV,并带有“
高度:100%
”,表示“页面正在加载…”

但是,从滚动条上看,页面的高度是100%+内容的高度

一旦页面加载且覆盖绝对定位DIV设置为
display:none
,这将立即消失

这在Firefox3、Chrome和IE6中都会发生

有没有关于如何提高身高的想法:100%,只有100%,而不是更多?

<html>
  <head>
     <style type="text/css">
         * html, * body {height: 100%; margin: 0; padding: 0}
            #message {background: black; height: 100%; left: 0; opacity: 0.15; position: absolute; top: 0%; width: 100%}
            #loading {height: 100%; left: 0; position: absolute; top: 45%; width: 100%; z-index: 2}
            #loading p {background: white; border: 2px solid #666; width: 180px}
     </style>
  </head>
  <body>
     <div id="grayout"></div>
     <div id="loading"><p>Page is loading...</p></div>
     <div id="content">
     // content is dynamically loaded into this div via AJAX
     </div>
  </body>
</html>

*html,*正文{高度:100%;边距:0;填充:0}
#消息{背景:黑色;高度:100%;左侧:0;不透明度:0.15;位置:绝对;顶部:0%;宽度:100%}
#加载{高度:100%;左侧:0;位置:绝对;顶部:45%;宽度:100%;z指数:2}
#加载p{背景:白色;边框:2px实心#666;宽度:180px}
页面正在加载

//内容通过AJAX动态加载到此div中

更新:问题似乎是我有“top:45%”。如何将该DIV移动到页面的中心(因为它是“页面正在加载消息”),而不会再次导致相同的问题?

如果该元素具有垂直填充或边距,则根据CSS规范将其添加到块的高度(请参阅)


编辑顶部:45%正在将元素向下移动45%。删除它(
top:0
)或将元素的高度设置为
auto
(默认值)。

尝试添加

overflow: hidden;

绝对定位的元素从页面流中移除,因此div可能没有安装在内容后面。为什么容器div被绝对定位在第一位?

您是否尝试过:

* html, * body {height: 100%; margin: 0; padding: 0;}

这也将删除页面中的所有填充和边距。

发布的HTML导致没有介绍文本的问题

<html>
  <head>
  </head>
  <body>
     <div style="height: 100%; background-color: blue;"></div>
  </body>
</html>

我几乎总是从以下行开始CSS:

* {padding:0; margin:0}

这将解决您的问题。

Re://许多内容是通过AJAX动态加载的

是否有任何动态数据具有不可分割的线条,或者可能会超出空间的图像或文本?

您的“加载”div是窗口的完整高度,它位于距离顶部45%的位置,因此它会使窗口溢出45%,从而为您提供一个滚动条


尝试将其移动到页面顶部,并将文本垂直居中。

注意,
*body
触发所有浏览器,而不仅仅是IE。您可以添加HTML和您正在使用的任何其他CSS。我在问题中尝试了HTML,但没有看到任何与滚动条或内容高度有关的奇怪问题。从未说过这是IE特有的问题。说它发生在Firefox3、Chrome和IE6中。。。我也可以访问浏览器。这不起作用,因为我的内容比一页长。所以通过执行overflow:hidden-这会使滚动条消失。我已经将padding/margin设置为0-仍然存在相同的问题这是正确的答案。html和正文上的高度:100%将使它们填满100%,这意味着正文中包含的div可以达到100%。仅使用边距/填充将不起作用。我已将边距/填充设置为0,但这并不能解决问题。那么我们需要一些代码或页面本身来查看是什么导致了这种行为。您是对的,“顶部:45%”是问题的原因。如何将该DIV向下移动,使其不在顶部,而不会造成与以前相同的问题?我通过删除高度来解决这个问题:从#加载DIV使其工作“超出空间的图像”-超出什么空间?“content”DIV根据内容的数量增减。就像这个网页一样,发布的答案越多,页面就会越大。我很困惑