如何从HTML / CSS流中删除元素?

时间:2010-06-07 23:22:39

标签: css

我知道“position:absolute”会从“HTML / CSS流”中弹出一个元素,并停止与其邻居进行交互。还有什么方法可以达到这个目的?

9 个答案:

答案 0 :(得分:101)

使position:absolute更适合我的一个诀窍是使其父position:relative成为可能。那么孩子将相对于父母的位置是“绝对的”。

jsFiddle

答案 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