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});