【问题标题】:Href Jump with Bootstrap Sticky Navbar [duplicate]使用 Bootstrap 粘性导航栏跳转 Href [重复]
【发布时间】:2018-07-13 14:46:41
【问题描述】:

所以我有一个带有下拉菜单的粘性导航栏,可以让我跳转到页面的不同部分。但是,当我跳转到不同的部分时,导航栏会覆盖我跳转到的 div 的开头。我检查了导航栏,它的高度为 58,带有填充和所有内容。如何将跳转偏移 58 像素,以使 div 与粘性顶部齐平并且不阻塞启动 div 的标题?

例如下面,这是我的网站

当我点击“教育”时,它会切断标有教育的标题,并且与我的navbar 不齐。

【问题讨论】:

  • 如果您分享您的代码,它会更容易为您提供帮助。
  • 这个问题被错误地标记为重复。所谓的重复讨论了 .navbar 具有 .fixed-top 类的情况,而这个问题询问了具有 .sticky-top 类的 .navbar。这是两种不同的情况,因为 .fixed-top 会从正常布局中删除 .navbar,而 .sticky-top 不会。

标签: html css bootstrap-4


【解决方案1】:

您可以使用:before 伪类在该部分的开头创建一个隐藏空间。

堆栈片段

body {
  margin: 0;
}

ul.menu {
  background: #000;
  margin: 0;
  position: sticky;
  top: 0;
}

section[id]:before {
  display: block;
  height: 38px;   /* equal to the header height */
  margin-top: -38px;  /* negative margin equal to the header height */
  visibility: hidden;
  content: "";
}

ul.menu li {
  list-style: none;
  display: inline-block;
}

ul.menu li a {
  color: #fff;
  padding: 10px;
  display: block;
  margin-right: 20px;
}

section {
  height: 500px;
}
<ul class="menu">
  <li><a href="#link1">Link1</a></li>
  <li><a href="#link2">Link2</a></li>
</ul>
<section id="link1">Link1</section>
<section id="link2">Link2</section>

【讨论】:

  • 感谢您的回复。现在正在尝试这样做。如果成功了,我会给你一个绿色的复选标记!
  • 仍有一些困难。我正在尝试手动转到每个 div,并使用它们的 ID 调用 :before (或 ::before)。例如,#resume::before{ display: block;高度:38px; /* 等于标题高度/ margin-top: -38px; / 负边距等于标题高度 */ visibility: hidden;内容: ””; } 虽然无济于事。 ://
  • @AndrewPagan 它可能是你的其他 css 代码...你能分享一个工作代码here
  • 只需将您的代码粘贴到小提琴中并保存...然后将网址粘贴到 cmets...
  • @AndrewPagan 我已经更改了你的一些代码...看看...fiddle.jshell.net/bhuwanb9/6gh59ksp/1
猜你喜欢
  • 1970-01-01
  • 2016-11-20
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
相关资源
最近更新 更多