Html 脱离位置:相对*无*改变结构

Html 脱离位置:相对*无*改变结构,html,css,position,Html,Css,Position,一个简化的例子: HTML: 作为小提琴手: 好的,C位于B前面和D后面,并且相对于A定位。我希望将其相对于文档定位,但将其保持在B和D之间(以z索引和制表符顺序)。如果C的位置更改为position:fixed,除了(显然)不随页面滚动之外,它完全符合我的要求 我见过很多解决方案,其中包括将div从其父级中分离出来以实现这一点,但这需要设置z索引和制表符顺序,这似乎是一个需要管理的噩梦(这是一个插件,因此周围的代码不在我的控制范围内) 如何在不破坏B或D或改变结构的情况下,给C一个真正的绝对位

一个简化的例子:

HTML:

作为小提琴手:

好的,
C
位于
B
前面和
D
后面,并且相对于
A
定位。我希望将其相对于文档定位,但将其保持在B和D之间(以z索引和制表符顺序)。如果
C
的位置更改为
position:fixed
,除了(显然)不随页面滚动之外,它完全符合我的要求

我见过很多解决方案,其中包括将div从其父级中分离出来以实现这一点,但这需要设置z索引和制表符顺序,这似乎是一个需要管理的噩梦(这是一个插件,因此周围的代码不在我的控制范围内)

如何在不破坏
B
D
或改变结构的情况下,给
C
一个真正的绝对位置?JavaScript可以很好地进行设置,但我需要将最终页面位置完全四舍五入(如果您对原因感兴趣,请参阅我的其他一些问题),所以我认为我不能使用
绝对位置-容器的绝对位置
方法。

如果
\A
具有
位置:相对
它内部的任何东西都将相对于
\A
定位

因此
#B
#C
#D
都将包含在
#A
中。如果文档位于具有位置的内容中,则无法将其相对于文档进行定位


您可以使用负边距将其定位在
#A
之外,但前提是
#A
具有
溢出:可见

我也可以使用负
,但遗憾的是,这并不能解决我的问题。我需要完全消除对
A
位置的依赖。
<div id="A">
    <div id="B"></div>
    <div id="C"></div>
    <div id="D"></div>
</div>