You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docusaurus 2 如何实现滚动时公告横幅固定在页面头部上方?

Docusaurus 2 固定公告栏到顶部实现方案

可以实现,通过自定义CSS修改默认样式即可完成,不需要调整原有组件结构,具体操作步骤如下:

步骤1:添加自定义CSS规则

打开项目下的src/css/custom.css文件,添加如下样式代码:

/* 固定公告栏到页面最顶部 */
.announcementBar {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  /* 取值大于默认导航栏z-index(默认值100)即可,避免被导航栏遮挡 */
  z-index: 200;
}

/* 导航栏添加顶部偏移,避免被公告栏挡住 */
.navbar {
  margin-top: var(--docusaurus-announcement-bar-height);
}

/* 页面主内容区添加顶部偏移,避免内容被两个顶部栏遮挡 */
.main-wrapper {
  padding-top: calc(var(--docusaurus-announcement-bar-height) + var(--ifm-navbar-height));
}

如果你的公告栏支持关闭操作,需要额外添加以下兼容样式,避免关闭后页面顶部出现空白:

/* 公告栏关闭后恢复导航栏与内容区的默认偏移 */
body.announcement-bar-close .navbar {
  margin-top: 0;
}

body.announcement-bar-close .main-wrapper {
  padding-top: var(--ifm-navbar-height);
}

步骤2:验证生效

执行npm run start重启本地开发服务,滚动页面即可看到公告栏始终固定在页面顶部,不会跟随滚动消失。

注意事项

  • 如果你之前自定义过导航栏或公告栏的z-index属性,需要对应调整上述CSS中.announcementBar的z-index值,保证其大于导航栏的z-index即可
  • 如果你修改过页面内容区的默认布局规则,需要对应调整main-wrapper的padding-top计算逻辑,避免内容出现遮挡或多余空白

内容的提问来源于stack exchange,提问作者Chad H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:15:06