CSS位置绝对 - 下一个定位元素是正文?

Max*_*dth 5 css position absolute

引用自msdn:

"对象相对于父元素的位置定位 - 如果其父元素未定位,则定位于主体对象 "

假设我设置了一个具有一定维度的div到底部0; 并离开:0; 它不会位于身体的底部,而是位于身体的左下方viewport.同时给身体一个边缘 - div仍然在左下角viewport.

我知道如何使用这些属性,但我正在寻找推理.当没有其他祖先定位时,它不是绝对元素所处的身体吗?谢谢!

这是小提琴:http: //jsfiddle.net/picbig/0p6rgv8f/

HTML:

<div id="large_box_greater_than_viewport"></div>
<div id="absolute_cnt"></div>
Run Code Online (Sandbox Code Playgroud)

CSS:

body{
    margin-left: 200px;
}
#large_box_greater_than_viewport{
    width: 900px;
    height: 10000px;
    background: red;
}
#absolute_cnt{
    position: absolute;
    width: 65%;
    bottom: 0;
    left: 0;
    height: 80px;
    background: rgba(0,0,0,.7);
}
Run Code Online (Sandbox Code Playgroud)

Has*_*ami 7

绝对定位的元件相对于其包含块定位.

fixed定位元素相对于包含视口尺寸的初始包含块.

初始包含块

根元素所在的包含块是一个称为初始包含块的矩形.对于连续介质,它具有视口的尺寸并锚定在画布原点; 它是分页媒体的页面区域.

absolute定位的元素对于被由最近的祖先与建立了包含块position的比其他任何东西static.即fixed,absoluterelative.

关键点是:

如果没有这样的祖先,则包含块是初始包含块.

因此,内部的绝对定位元素<body>不会相对于<body>自身放置,而是放置在初始包含块(即视口)中.

http://www.w3.org/TR/CSS2/visudet.html#containing-block-details