我设计了一个页面,在顶部有一个半透明的导航栏,通过使用position: sticky
和top: 0
将导航栏固定在顶部。它看起来很酷,工作起来很好,直到我使用URI中的片段跳转到某个对象(/page#obj-id
)因为它跳跃所以目标直接在顶部,半隐藏的导航栏。所以每次我需要进一步向下滚动,以便能够与目标互动,这是不好的。
我不想修改HTML结构(如定义一个隐藏对象的目标略高于),因为网站应该保持结构正确和易于解析。我不想添加JavaScript也(只有在必要时),因为网站应该可以使用没有。
所以我想为跳转配置一个到顶部的边距。我试着把导航栏旁边的所有内容都放在自己的div中,以便定义这样的边距,但是这对跳转本身没有影响。我可以让这个内部div可滚动,并定义body不可滚动,但是滚动条看起来也不太好,因为它没有使用旁边的全部空间。
TL;DR:我想要一个How can I jump to a point slightly above the fragment identifier?的解决方案,但(大部分)不改变主要的HTML结构,也不引入JavaScript。
1条答案
按热度按时间5kgi1eie1#
可以使用
scroll-margin-top: (height of header);
并将其添加到使用锚标记链接到的元素中