CSS定位是否脱离标准流取决于position取值:static和relative不脱离,absolute、fixed和sticky(触发后)脱离。脱离流元素不占空间,影响后续布局。
CSS定位是否脱离标准流,取决于所使用的定位方式。并非所有定位都会让元素脱离文档流,关键看 position 的取值以及是否配合 top/right/bottom/left 等偏移属性。
position: static 是默认值,元素按正常文档流排列,不接受 top、right 等偏移声明(即使写了也无效)。它既不脱离流,也不影响其他元素布局。
position: relative 元素仍占据其原始位置(即在文档流中留有空间),只是视觉上相对于自身原来的位置发生偏移。后续元素的布局不受影响,就像它没动过一样。
ed 定位:完全脱离标准流position: absolute 和 position: fixed 会让元素彻底脱离文档流:
position 不为 static),fixed 则相对于视口(viewport)top: 0,也不会影响兄弟元素的排布position: sticky 是一种混合行为:在未触发粘性临界点前,它表现如 relative(在流中);一旦滚动到设定阈值(如 top: 0),就表现为 fixed(脱离流并固定)。
top、bottom 等至少一个偏移属性才生效脱离文档流的本质是:该元素不再参与普通流的尺寸计算与位置分配,它的存在与否不影响其他非定位元素的布局逻辑。理解这一点,就能预判元素移动后页面是否会“塌陷”或“重叠”。