贝利信息

html如何堆叠_HTML元素层叠排列的CSS设置方法【教程】

日期:2026-01-05 00:00 / 作者:絕刀狂花
z-index不生效主因是元素未参与层叠上下文:需确保position为relative/absolute/fixed/sticky,且父容器未意外创建新层叠上下文(如含transform、opacity等),同一上下文中z-index才按数值大小决定覆盖顺序。

z-index 不生效?先确认元素是否“参与层叠上下文”

直接给元素加 z-index 却没反应,大概率是因为它没进入层叠上下文(stacking context)。z-index 只对「定位元素」(position 值为 relativeabsolutefixedsticky)有效,对 static 元素完全无效。

同一层叠上下文中,z-index 数值决定前后顺序

当多个元素处于同一个层叠上下文且都已定位,z-index 就是决定谁在前、谁在后的直接依据:数值大的盖在数值小的上面,负值也合法(如 z-index: -1 会沉到父容器背景之下)。

用 position + z-index 实现常见覆盖效果(如弹窗、下拉菜单)

实际开发中,覆盖类组件(modal、tooltip、select dropdown)必须脱离文档流并可控层级。关键是两步:脱离流 + 显式层级。

.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1000; /* 确保高于页面其他内容 */
}

.dropdown-menu { position: absolute; z-index: 101; / 高于导航栏(z-index: 100),但低于 modal / }