我试图在页面的底部(而不是视区)绝对定位一个元素。元素是BODY的直接子元素。你可以想象页面有很多内容,所以有一个滚动条。
所以像这样:

<body>
  <img id="target" src="images/code.png" style="position:absolute;bottom:0;"/>

这将图像放在视口的底部,而不是现有的内容。但是,一旦我添加了以下css规则:
body{
  position:relative;
}

这张照片放到了这页的底部。
所以如果BODY不是所有元素的包含块,那么什么是?
另外,我确信这是一个已经解决的问题,但是我找不到一个例子来详细解释这个问题和解决方案。有什么线索吗?

最佳答案

可能是<html>
在上面设置position: relative,看看会发生什么。
更新-直接从quirksmode
包含块
为了指定元素的确切位置,必须添加top、bottom、left和/或right声明。这些都给出了相对于上/左或下/右参考点的坐标。这个参考点是什么?
位置:静态:没有参考点,因为静态块不能移动。
位置:相对:如果块没有移动,它将采取的位置(即,如果它有位置:静态)。
position:absolute:包含块,它是第一个没有position:static的祖先元素。如果没有这样的祖先,<html>元素充当包含块。(注意:在旧的浏览器中,<body>元素用作默认的包含块。)<--- Bingo
位置:固定:视区(浏览器窗口)。

关于html - BODY标签作为包含块的根级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3910676/

10-09 15:21