a标签锚点的问题

a便签作为锚点定位页面的位置还是很常见的,基本实现如下:

<a href="#person_card" >个人贷</a>
<a href="#company_card" >企业贷</a>

<div id="person_card">个人贷内容</div>
<div id="company_card">企业贷内容</div>

但是,点击锚点,会使相应内容直接滚动到页面最顶部,如果有一个固顶的导航栏,页面内容就会被覆盖,如下图所示:


锚点内容滚动到页顶,内容被遮挡

解决方法:

给要锚的元素设置一个比导航栏高度大一点padding-top,然后margin-top为导航栏高度的负值,这样该元素会覆盖其前面的元素,将前面元素的z-index设置高一点就ok啦~~
实现代码如下:

<a href="#person_card" >个人贷</a>
<a href="#company_card" >企业贷</a>

<div class="before_content">前面的内容</div>
<div id="person_card">个人贷内容</div>
css内容:

#person_card{
    padding-top: 50px;
    margin-top: -46px;// 导航栏高度为46
}
.before_content{
    z-index: 1;
}

实现效果:

导航栏固顶时,内容不会被遮挡:

导航栏未固顶时,视觉满足需求:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,842评论 1 92
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,980评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,079评论 2 59
  • 这是一本书的名字,书里有散文,有诗,还有书信。书上语“美到心碎的经典”。 请原谅我说,我不清楚上述三者有何区别。散...
    不良公子阅读 660评论 3 5