Javascript 是否可以用“位置:相对”模拟元素的“位置:绝对”位置?

Javascript 是否可以用“位置:相对”模拟元素的“位置:绝对”位置?,javascript,html,css,positioning,Javascript,Html,Css,Positioning,我必须在一个软件上工作,该软件生成表格(有点…),并且必须提供对元素位置的完全控制 到目前为止,我们有这样的结构: <div id="container" style="display: table-row"> <div id="a" style="position: absolute"></div> <div id="b" style="position: absolute"></div> <div id="c" s

我必须在一个软件上工作,该软件生成表格(有点…),并且必须提供对元素位置的完全控制

到目前为止,我们有这样的结构:

<div id="container" style="display: table-row">
  <div id="a" style="position: absolute"></div>
  <div id="b" style="position: absolute"></div>
  <div id="c" style="position: absolute"></div>
</div>

一些javascript代码使用
样式指令将
#a
#b
#c
元素放置在
#容器中

这样,元素甚至可以“反转”,即:
#b
可以是左边的第一个元素,
#a
可以是最后一个元素,这取决于其他一些规则

但是,这失败了,因为它们被从流中取出,因此
#容器
的高度为空。很公平

看起来是这样的,所以我想对子元素使用
position:relative
,但是这样做,
left
top
样式指令现在引用初始元素的位置,不再可用了

你有没有遇到过类似的情况?我能做些什么来实现期望的行为

多谢各位


注:对于那些想知道为什么我们不使用
元素来表示表的人,让我们说我也很想知道,但对这个决定没有权力…

想到两件事-既有黑客行为,也可能不是超级可伸缩的:

1) 添加
position:absolute
不是在CSS中,而是在JS中-但在添加之前,先将容器固定到其预绝对偏移尺寸,这样高度就不会丢失

var container = $('#container');
container.height(container.height()).children().css('position', 'absolute');
2) 使用
position:relative
,但设置它们相对于原始位置减去偏移量的新位置

var el = $('#some_el');
el.css({top: 0 - el.position().top});

我想到了两件事——既有黑客行为,也可能不是超级可扩展的:

1) 添加
position:absolute
不是在CSS中,而是在JS中-但在添加之前,先将容器固定到其预绝对偏移尺寸,这样高度就不会丢失

var container = $('#container');
container.height(container.height()).children().css('position', 'absolute');
2) 使用
position:relative
,但设置它们相对于原始位置减去偏移量的新位置

var el = $('#some_el');
el.css({top: 0 - el.position().top});