使用 Hash 链接做页内跳转时添加 Offset,防止内容被 Header 挡住

问题

使用 Hash 链接进行页面内跳转时(比如文章目录的跳转),如果页面有一个固定的 Header(页头),

那么 Header 会挡住一部分内容(也就是带有 id 的标题),

因此需要添加一个偏移,使浏览器滚动的位置更靠下一些,防止 Header 挡住内容。

解决

最简单的方法是用 CSS 的 scroll-padding 属性,

要放在滚动容器的元素上,用法和 padding 一样,有四个方向。

html {
    scroll-padding: 2rem 0 0 0;
}

针对上述问题,只需要添加上面这一句就可以解决。

参考资料

  1. scroll-padding - CSS: Cascading Style Sheets | MDN

  2. CSS property: scroll-padding | Can I use... Support tables for HTML5, CSS3, etc

posted on 2021-08-19 17:23  atLFN  阅读(89)  评论(0编辑  收藏  举报