我知道“position:absolute”会从“HTML / CSS流”中弹出一个元素,并停止与其邻居进行交互。还有什么方法可以达到这个目的?
答案 0 :(得分:101)
使position:absolute
更适合我的一个诀窍是使其父position:relative
成为可能。那么孩子将相对于父母的位置是“绝对的”。
答案 1 :(得分:51)
无?
我的意思是,除了完全用display: none
从布局中删除它之外,我很确定就是这样。
您是否面临position: absolute
不可行的特定情况?
答案 2 :(得分:34)
另一种选择是将height: 0; overflow: visible;
设置为元素,但它不会真正在流程之外,因此可能会中断margin collapsing。
答案 3 :(得分:4)
有display: none
,但我认为这可能比您正在寻找的更多。
答案 4 :(得分:3)
浮动它将重新组织流,但位置:绝对是从文档流中完全删除它的唯一方法。
答案 5 :(得分:3)
position: fixed;
也会“弹出”一个元素。 :)
position: absolute
必须附有职位。例如top: 1rem; left: 1rem
position: fixed
会将元素放置在通常根据文档流程出现的位置,但在此之后阻止元素移动。它还有效地将高度设置为0px(关于dom),以便下一个元素向上移动。
这可能非常酷,因为您可以设置position: fixed; z-index: 1
(或任何您需要的z索引),以便它“弹出”下一个元素。
这对于在滚动时保持在顶部的固定位置标题特别有用。例如。
答案 6 :(得分:1)
我知道这个问题已经有好几年了,但是我认为你想要做的就是把它当成一个大元素,比如图像不会干扰div的高度? / p>
我刚刚碰到类似的东西,我希望图像溢出div,但我希望它在一串文本的末尾,所以我不知道它最终会在哪里。
我想出的一个解决方案是将边距 - 底部: - 元素的高度放置,所以如果图像高度为20像素,
margin-bottom: -20px;
vertical-align: top;
例如。
那样它漂浮在div的外面,并且紧挨着字符串中的最后一个字。
答案 7 :(得分:0)
出于完整性考虑:
float
属性也从HTML流程中删除了一个元素,例如
float: right
答案 8 :(得分:-2)
尝试使用它:
position: relative;
clear: both;
我无法使用绝对位置时使用它,例如在使用page-break-after: always;
时打印时只能使用position:relative
。