【问题标题】:Fixed topbar vs named anchors固定顶栏与命名锚点
【发布时间】:2026-01-13 03:40:02
【问题描述】:

我有一个带有 position:fixed 的顶栏,其中还包含锚链接 (<a href="#someid">jdjd</a>)。

问题是目标被放置在视口的顶部(在固定的顶栏后面)。

我该如何解决,让浏览器滚动以使目标显示在顶栏的正下方?

【问题讨论】:

    标签: css positioning


    【解决方案1】:

    据我所知,没有干净的解决方案。如果使用内联滚动条可以实现,但是需要固定高度。

    使用 CSS 找到 2 个解决方案:http://css-tricks.com/hash-tag-links-padding/

    否则,您可以很容易地使用 JQUERY 来测量用户的身高,将其放入容器 div 中,然后在其上滚动。

    见:http://jsfiddle.net/jpGdu/

    另一个解决方案可能是让元素 ur 链接到填充顶部(如果它是 h1 或其他):)

    【讨论】:

      【解决方案2】:

      不知道你为什么被否决,这似乎是一个诚实的好问题。

      我会在视口上放一个margin-top,等于固定顶栏的高度。

      http://jsfiddle.net/justiceerolin/KfMLJ/为例

      【讨论】:

      • 不确定您所说的“视口”是什么意思,但给bodyhtml margin-top 不会影响浏览器滚动的位置。我认为 OP 需要做的是要么给你可以滚动到 margin-top 的元素 要么 将一些点击事件添加到覆盖默认滚动的链接中,而不是滚动到目标的位置元素 - 顶栏高度。
      • 示例代码:jsfiddle.net/justiceerolin/KfMLJ 类“容器”是视口。
      • 嗯不确定这应该证明什么? (链接甚至没有指向任何无法测试的东西)。但是,如果视口是指滚动到的元素,那么我们就在同一页面上。