当有固定的导航栏时跳转到页面的不同部分[重复]

Posted

技术标签:

【中文标题】当有固定的导航栏时跳转到页面的不同部分[重复]【英文标题】:Jump to different sections of the page when theres a fixed navbar [duplicate] 【发布时间】:2017-04-16 14:42:21 【问题描述】:

所以我已经成功地让我的页面通过像这样引用 ID 的按钮跳转到页面上的不同部分

<button id="niftyBtn"><a href="#nifty">Things</a></button></br>
<div id="nifty">Blah</div>

我有几个,它们都转到页面的正确部分。 问题是,页面中包含一个我无法更改的固定导航,并且部分的顶部位于该导航栏的后面而不是它的下方。

我尝试使用我看到的使用 .offset() 的 jquery 解决方案的几种不同变体,但它们都没有效果。任何意见表示赞赏

注意:当我使用 jQuery 或 javascript 跳转部分而不是 href 标签时,它的行为完全相同。

【问题讨论】:

固定导航栏会在内容之上,不会将部分内容向下推,快速解决方案在每个部分的 padding-top 中添加导航栏的高度;或者使用js移动滚动高度导航栏的负值 哦,伙计,我实际上并没有改变填充,我不确定这是否会看起来很糟糕。我已经尝试使用 js 滚动到负值,但它似乎没有做任何事情 我想这已经回答了好几次了,除非我误读了你的问题:***.com/questions/9047703/…***.com/questions/10732690/… 你可以看到这个:***.com/questions/4086107/… 【参考方案1】:

您不需要 javascript 解决方案,就这么简单:

h2:before,h3:before,h4:before 
    content: " ";
    display: block;
    visibility: hidden;
    margin-top: -7em;
    height: 7em;

当然,这些是用于标题的,但您可以用一个类或 ID 替换以获得相同的效果。当然,必须修改测量值。

顺便说一句,你为什么使用&lt;button&gt; 来包装&lt;a&gt;?该代码应该只是&lt;a href="#nifty"&gt;Things&lt;/a&gt;&lt;/br&gt;,如果您希望它看起来像一个按钮,请将其设置为一个按钮。

【讨论】:

网站上的按钮已经有了样式,所以我没有重复这个页面的样式,我只是在里面放了一个 。 但我会试试这个,谢谢:) 你不需要重复样式,你可以在 CSS 中做 &lt;a class="button"&gt;button, .button。当然,在&lt;button&gt; 中包含&lt;a&gt; 是有效的,它只是......丑陋:D ^这很公平

以上是关于当有固定的导航栏时跳转到页面的不同部分[重复]的主要内容,如果未能解决你的问题,请参考以下文章

允许您使用标签跳转到不同部分的网站的术语是啥?

Boostrap导航栏跳转到其他页面或外部链接

垂直滚动条滑到页面里面的导航栏时,导航栏固定到窗口顶部

HTML实现点击阅读导航,跳转到页面这个内容的开始部分。

mui tab bar 底部导航栏跳转页面。不用pluseady 因为不支持

thinkphp点击导航一直跳转到主页