请考虑this jsfiddle,包含此HTML代码:绝对定位与百分比给人意想不到的效果
<div id="container">
<div id="item">TEST</div>
</div>
和一些CSS:
#container {
border: 1px solid red;
height: 100px;
width: 100px;
}
#item {
border: 1px dashed purple;
position: absolute;
left: 50%;
}
的结果让我感到吃惊。看看W3 positioning props我期望#item
有其左侧值为“包含块”的50%:#container
。但是,它似乎占整个页面的50%,而不仅仅是containing block。更令人惊讶的是:如果我告诉容器的溢出物保持隐藏状态,“测试”仍然存在。
所有主流浏览器(包括IE9)似乎都表现出相同的行为,所以我的期望可能不正确。 接下来的问题是:规范的哪一部分解释了这种行为,如果有的话?
这就是'position:fixed',它总是使用整页容器。绝对定位适用于其父元素,请参阅我的答案。 – animuson 2012-02-22 23:08:11
太过真实。我完全同意。谢谢。 – thepriebe 2012-02-22 23:15:16