使用百分比的绝对定位会产生意想不到的结果

新手上路,请多包涵

请考虑这个 HTML 和 CSS 片段:

 #container {
  border: 1px solid red;
  height: 100px;
  width: 100px;
}

#item {
  border: 1px dashed purple;
  position: absolute;
  left: 50%;
}
 <div id="container">
  <div id="item">TEST</div>
</div>

结果让我吃惊。查看 W3 定位道具,我希望 #item 的左值位于“包含块”的 50%: #container 。但是,它似乎占整个页面的 50%,而不仅仅是 包含块。更令人惊讶的是:如果我告诉容器的溢出保持隐藏,“测试”仍然会在那里。

所有主流浏览器(包括 IE9)似乎都表现出相同的行为,因此我的预期可能不正确。 _那么问题是_: 规范的哪一部分解释了这种行为(如果有的话)?

原文由 Jeroen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 315
2 个回答

添加

position:relative;

到容器 div 。

原文由 mohsen dorparasti 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题