是否可以模拟带有“位置:相对”的元素的“位置:绝对”放置
Is it possible to simulate `position: absolute` placement for element with `position: relative`?
我必须开发一个生成表格(有点......)的软件,并且必须提供对元素位置的完全控制。
到目前为止,我们有这样的结构:
<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代码,使用left
和top
样式指令将#a
,#b
和#c
元素放在#container
中。
这样,元素甚至可以"反转",也就是说:#b
可以是左边的第一个元素,#a
最后一个元素,这取决于其他规则。
但是,此操作失败,因为它们已从流中取出,因此#container
具有空高度。很公平。
以这种方式解决这个问题似乎是不可能的,所以我想对子元素使用 position: relative
,但这样做,left
和 top
样式指令现在引用初始元素的位置并且不再可用......
您是否曾经遇到过类似的情况?我能做些什么来实现所需的行为?
谢谢。
PS:对于那些想知道为什么我们不使用<table>
元素来表示表格的人,让我们说我也想知道,但对该决定没有权力......
我想到了两件事 - 既笨拙又可能不是超级可扩展的:
1)不是在CSS中添加position: absolute
而是在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});
相关文章:
- 从鼠标点(及更多)查询位置元素
- 保持光标位置元素在顶部使用 svg
- 如何在每次页面重新加载时更改渐变背景,同时保持光标位置元素处于活动状态
- 使用JS暂时禁用在位置/元素处滚动
- 相对于另一个元素的位置元素不起作用
- 返回包含随机位置元素的数组
- 如何在 Jquery 中根据屏幕大小移动绝对位置元素
- 如何在html中设置固定位置元素的最大深度
- 无论如何,如果绝对位置元素位于屏幕下方,则使正文滚动条出现
- 绝对位置元素未隐藏在滚动框之外
- 为什么浮动位置 元素缩小时元素不移动
- 固定位置元素…动作
- 当元素处于相对位置元素时,查找元素偏离窗口的jQuery或JavaScript方法
- 绝对位置元素,这样它们的行为就像浮动一样
- jQuery鼠标在菜单和动画位置元素后面
- 捕获绝对位置元素上的单击事件
- 如何设置固定位置元素的高度以达到浏览器窗口的底部
- jQuery绑定位置:元素的绝对位置
- 如何将固定位置元素限制为浏览器窗口的高度
- 如何在不使用JS的情况下使用TOC滚动页面上的固定位置元素