页面后续 section 始终叠加在首屏内容之上,根本原因是 `.container` 使用了 `position: fixed` 且未限制其父容器高度,导致文档流塌陷、后续内容失去正常定位上下文。
这个问题本质是 CSS 定位与文档流的典型冲突:你为首页主内容区域(.container)设置了 position: fixed,使其脱离文档流并固定在视口坐标(top: 38%; left: 32%),但 fixed 元素不会占据空间,因此
✅ 正确解法不是强行用 z-index 或绝对定位堆叠,而是恢复正常的文档流秩序:
移除 .container 的 position: fixed
首屏内容应作为普通流内元素存在。若需居中展示,改用现代布局方案:
.container {
/* 删除 position/fixed/top/left */
text-align: center;
padding: 8rem 1rem 0; /* 为导航栏留出顶部空间 */
margin: 0 auto;
max-width: 1200px;
}
确保
当前 .nav-container 已设 height: 70px,但因内部 .navbar 有 height: 80px 且未清除浮动/未触发 BFC,建议显式设置:
.nav-container {
height: 80px; /* 与 navbar 一致 */
position: sticky; /* 可选:实现吸顶导航 */
top: 0;
z-index: 1000;
}为 设置最小高度,保障滚动基础
将 height: 100% 改为 min-height: 100vh,避免内容不足时无法滚动:
body {
min-height: 100vh; /* 关键!替代 height: 100% */
margin: 0;
font-family: 'Heebo', sans-serif;
line-height: 1.45;
}后续 section 采用标准流布局(推荐)
移除所有 position: absolute/fixed 的 hack 式写法,让每个 section 自然垂直排列:
Why fly with us?
A travel agency like ours offers a one-stop solution...
section {
padding: 6rem 1rem;
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.section-content {
max-width: 800px;
text-align: center;
}⚠️ 注意事项:
总结:布局重叠的本质是文档流断裂。修复核心在于——让首屏内容回归文档流,用 min-height: 100vh 保证页面可滚动,用 flex 或 grid 实现内容居中,而非依赖 fixed 定位强行“钉”住元素。这样后续区块自然跟随滚动,结构清晰、语义正确、维护成本低。