【问题标题】:HTML does absolute position create new positioning system for its children?HTML 绝对位置是否为其子项创建新的定位系统?
【发布时间】:2012-05-13 13:57:00
【问题描述】:
  1. 据我所知,绝对定位元素 (.egspan style="position:absolute") 将根据其祖先的位置上下文进行定位,但这个绝对定位元素不会为其创建新的定位系统孩子们,是吗????

  2. 如果 #1 是正确的,有人可以告诉我为什么允许在此文档中将 parent 设置为绝对位置吗? (只需在引用中准确搜索这一行,您就会看到相关段落“将父容器指定为位置:相对或位置:绝对。” http://phrogz.net/css/vertical-align/index.html

该链接中的父级必须是“相对”正确的,但不是绝对的,为什么它说绝对可以?因为只有 relative 会创建新的定位上下文,所以在那个链接项目符号 #3 中,前 50% 不应该工作

【问题讨论】:

    标签: html css css-position


    【解决方案1】:

    (1) 正确。定义了定位的元素将相对于最近的 ascestor 定位,该 ascestor 的位置设置为静态以外的任何东西(默认值)。

    来自:http://www.w3.org/TR/CSS2/visuren.html#absolute-positioning

    在绝对定位模型中,框相对于其包含块显式偏移。 .... 一个绝对定位的盒子为正常流子和绝对(但不是固定)定位的后代建立一个新的包含块

    另请注意:相对定位和固定定位的元素也会为绝对定位的元素建立新的包含块。

    【讨论】:

    • 感谢浮士德,那么#2 中的链接是正确的吗?我不明白这句话“一个绝对定位的盒子为正常流动的孩子建立了一个新的包含块,并且绝对......”什么是“正常流动的孩子”?那些没有应用任何“位置”样式的元素?那会是静态的吗?
    • 关于“正常流程”,请参阅:webdesign.about.com/od/cssglossary/g/bldefnormalflow.htm ...虽然“正常流程儿童...”部分不是相关阶段,而是“...并且绝对定位(但不固定)定位的后代”部分适用于此。
    • 关于 #2 中的链接:方法 2 很好,但方法 1 仅适用于警告。居中适用于#myinnercontainer 的box,但不适用于其内容。在外盒或内盒具有动态高度的上下文中,这将没有任何价值。看看我的小提琴:jsfiddle.net/FdZDV/2
    猜你喜欢
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2012-05-09
    相关资源
    最近更新 更多