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

Dev*_*ted 72 css

我知道"position:absolute"将从"HTML/CSS流"中弹出一个元素,并停止与其邻居进行交互.还有什么方法可以实现这一目标?

Joe*_*ynn 108

position:absolute我更熟悉的一个诀窍就是让它成为父母position:relative.那么孩子将相对于父母的位置是"绝对的".

的jsfiddle

  • 好尖hombre (2认同)

Mat*_*chu 56

没有?

我的意思是,除了完全从布局中删除它之外display: none,我很确定就是这样.

您是否面临position: absolute一个不可行的解决方案?

  • `position:absolute`会导致重新绘制滚动,这对移动设备的性能不利 (4认同)
  • 这不是用户在到达此处时期望得到的答案,因为标题为"从流中删除".`display:none`不仅完全从流中删除元素. (3认同)

use*_*ser 35

另一种选择是设置height: 0; overflow: visible;一个元素,虽然它不会真正在流量之外,因此可能会破坏边缘崩溃.

  • +1.这个"元素流出"问题的解决方案很棘手,但非常接近于期望的行为. (4认同)
  • @Jessica,使用带有绝对定位的`:: before`伪元素来模拟背景. (2认同)

小智 7

position: fixed;正如您所说,还将从流程中“弹出”一个元素。:)

position: absolute必须附有一个位置。例如top: 1rem; left: 1rem

position: fixed但是,会将元素放置在根据文档流通常出现的位置,但之后阻止其移动。它还有效地将高度设置为 0px(相对于 dom),以便下一个元素在其上向上移动。

这可能非常酷,因为您可以设置position: fixed; z-index: 1(或任何您需要的 z-index),以便它“弹出”到下一个元素上。

例如,这对于滚动时保持在顶部的固定位置标题特别有用。


Gre*_*ill 5

display: none,但我认为这可能比您要寻找的要多一些。

  • 什么?如果元素甚至没有*显示*,则位置不相关。 (4认同)
  • 但即便如此,它仍然是“在附近”......相对于身体的绝对位置是完全控制其位置的唯一方法。请记住,如果它的父级被声明为相对的,那么它的绝对起源是相对于它的 - 在这种情况下,您必须将该元素附加到 document.body 或非相对声明的元素。 (2认同)