您现在的位置是:网站首页> 编程资料编程资料
css锚点定位被顶部固定导航栏遮住的解决方案CSS 带搜索导航栏的示例代码html+css+js实现导航栏滚动渐变效果不可思议的CSS导航栏下划线跟随效果html+css 实现简易导航栏功能CSS导航条菜单之带小三角形的实现代码css实现导航切换的实例代码CSS设置列表样式和创建导航菜单实现代码CSS中的导航栏和下拉菜单的实现纯CSS + 媒体查询实现网页导航效果CSS3 二级导航菜单的制作的示例
2021-09-03
1300人已围观
简介 这篇文章主要介绍了css锚点定位被顶部固定导航栏遮住的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
很多网站都有一个固定在上方的导航栏,方便用户搜索和跳转到其他页面。
同时为了方便用户浏览长文档,都会加上目录,点击段落标题跳转到段落所在的位置,
如图所示:

如果使用锚点实现目录的跳转会遇到 fixed 导航栏遮住了标题的问题。

1. 锚点定位机制
如果没有滚动条,锚点失效。
如果有滚动条,滚动条滚动到地址 hash (地址 # 号后面的内容)对应的锚点元素padding-box上边缘位置。
2. 解决方案
示例
(1)padding+margin
padding影响锚点元素的定位,margin不影响锚点元素的定位。所以使用padding调整锚点元素跳转后的位置,使用margin抵消padding对布局的影响。
1.出现的时间、地点不同
.first { padding-top: 60px;/* 60px是导航栏高度 */ margin-top: -60px; }
优点
此方案无需添加额外的元素,直接使用 css 可解决问题。
缺点
当标题的文档层级和段落的文档层级不一致时会导致遮盖其他元素。
例如:标题使用了 relative 定位提升了文档层级。会出现鼠标无法选中标题上方被布局遮挡的段落,从而导致无法复制文档。

(2)用span或a标签作为锚点元素
非替换内联元素的padding不影响布局,但可以影响锚点位置。
2. require/exports 是运行时动态加载,import/export 是静态编译
.title_placeholder { padding-top: 60px; }
缺点
同方案(1)
(3)暗锚点
在需要定位的元素上方加入不影响布局的空白锚点元素。
因为锚点跳转后的位置会落在元素的padding-box上边缘,设置 height影响锚点位置,设置margin-top抵消暗锚对布局对影响。
3. require/exports 输出的是一个值的拷贝,import/export 模块输出的是值的引用
.dark_anchor { height: 60px; margin-top: -60px; }
优点
不影响其他元素的鼠标选择
缺点
此方案的定位元素的margin会影响锚点跳转后的位置,和直接设置标题为锚点元素的表现不一致。
例如:标题(定位元素)有 20px 的边距,锚点跳转后20px的边距依旧保留。如果希望锚点跳转后标题置顶不受 margin影响的同学慎用此方案。

(4):target伪类
:target CSS 伪类 代表一个唯一的页面元素(目标元素),其id 与当前URL片段匹配 .
4. 用法不一致
:target { padding-top: 60px; margin-top: -60px; }
此方案和方案(1)有异曲同工之妙,当跳转到某个(类)锚点时,锚点元素应用 :target 样式。
:target浏览器兼容性:

3. 参考资料
到此这篇关于css锚点定位被顶部固定导航栏遮住的解决方案的文章就介绍到这了,更多相关css锚点被顶部固定导航栏遮住内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 纯CSS实现网页内部锚点跳转时上下偏移的示例代码纯css实现的tab切换效果(使用锚点作为标记)CSS解决链接锚点定位偏移的代码css锚点定位被顶部固定导航栏遮住的解决方案
- CSS书写格式、一个手机页面的基本结构详解引用css样式的书写格式详解网页设计制作教程:CSS书写格式
- css中引入指定字体@font-face兼容各浏览器的问题深入理解CSS @font-face性能优化CSS3 @font-face属性使用指南CSS3用@font-face实现自定义英文字体什么是@font-face及font-face如何在css中使用CSS @font-face属性实现在网页中嵌入任意字体css常用样式font设置字体的多种变换(实例详解)
- CSS3 中filter(滤镜)属性使用详解详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用通过css3的filter滤镜改变png图片的颜色的示例代码jquery和CSS3图片排序过滤搜索插件Filterizr详解CSS3中强大的filter(滤镜)属性CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
- 一段css让全站变灰的代码总结利用CSS将网站网页变灰色代码示例用css3实现当鼠标移进去时当前亮其他变灰效果css页面变灰度兼容ie、firefox、chrome、opera、safari实现样式网页变灰配合全国哀悼日的css代码 20100421css使图片变灰的实现方法
- CSS中如何解决外边距塌陷问题解决CCS中的margin:top塌陷问题css高度塌陷问题的解决方案详解CSS盒子塌陷的5种解决方法浅谈CSS 高度塌陷问题关于清除浮动塌陷的几种方法总结
- CSS 继承 inherit属性的方法css中filter属性和backdrop-filter的应用与区别详解详解HTML5中CSS外观属性CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)CSS字体、文本、列表属性详细介绍奇妙的 CSS 属性 MASK详解利用CSS中的 outline-offset 属性实现加号css一些不常见但很有用的属性操作大全
- 借助CSS mask遮罩显著优化PNG图片的尺寸(推荐)借助CSS mask遮罩显著优化PNG图片的尺寸(推荐)详解css3 mask遮罩实现一些特效CSS3 mask 遮罩的具体使用方法
- flex弹性盒布局最后一行左对齐的实现思路解决flex布局space-between最后一行左对齐的方法css3 flex布局 justify-content:space-between 最后一行左对齐让CSS flex布局最后一行列表左对齐的N种方法(小结)
- 如何利用定位使元素居中(web端页面布局小技巧)绝对定位元素的水平垂直居中的方法(3种任选)CSS实现定位元素居中的方法CSS绝对定位元素left设为50%实现水平居中将一个绝对定位的div水平垂直居中对齐使用绝对定位+负外边距让DIV层水平垂直居中页面通过定位来实现不定宽度居中显示CSS实现网页分栏布局的方法:绝对定位和浮动CSS高级技巧:网页布局-CSS教程-网页制作-网页教学网
