我知道使用position: absolute
会使元素脱离文档流并停止与其邻居的交互。
还有哪些其他方法可以实现这一效果?
我知道使用position: absolute
会使元素脱离文档流并停止与其邻居的交互。
还有哪些其他方法可以实现这一效果?
一个让我更容易接受position:absolute
的技巧是将其父级元素设为position:relative
。这样子元素就会相对于父元素进行'absolute'定位。
position:absolute
添加到父元素会导致 zIndex 失败(被忽略),这意味着脱离文档流的元素仍然可能被一些内联元素覆盖。从父元素中删除 position:absolute
已经帮助我解决了这个问题。 - DDRRSS除了使用 display: none
将其完全从布局中移除之外,我想那就是它了。
您是否面临着一种情况,在该情况下 position: absolute
不是可行的解决方案?
position: absolute
会在滚动时引起重绘,这会对移动设备的性能产生不良影响。 - bafromcadisplay: none
会完全将元素从流程中移除。请注意不要改变原文的意思,尽可能使翻译通俗易懂。 - jstice4all另一种选择是将 height: 0; overflow: visible;
设置给一个元素,虽然它不会真正地超出流并且可能会破坏 margin collapsing。
::before
伪元素来模拟背景。 - userposition: fixed;
也会像你所说的一样将元素从流中"弹出"。
position: absolute
必须与一个位置一起使用,例如 top: 1rem; left: 1rem
position: fixed
会将元素放置在文档流中它通常出现的位置,但之后防止它移动。它还有效地将高度设置为0像素(关于dom),以便下一个元素向上移动。
这非常酷,因为您可以设置position: fixed; z-index: 1
(或您需要的任何z-index),使其"弹出"到下一个元素上面。
这对于固定位置的标题很有用,例如当您滚动时它们保持在顶部。
有display: none
,但我认为这可能比你要找的更多。
display: none
属性的输入框的验证信息出现在一个毫无意义的位置(覆盖了选项卡顶部)。在该浏览器中,未显示的元素似乎真正没有位置。 - Brilliandfloat
属性也将元素从 HTML 的流中移除,例如:float: right
margin-bottom: -20px;
vertical-align: top;
这样它就浮动在div外面,并保持与字符串中的最后一个单词相邻。尝试使用这个:
position: relative;
clear: both;
当我无法使用绝对定位时,例如在打印时使用page-break-after: always;
仅与position:relative
一起正常工作时,我会使用它。