当在我构建的网站上滚动时,使用CSS属性position: fixed可以像预期的那样在页面顶部保留一个导航栏.

然而,在Chrome中,如果你使用导航栏中的链接,它sometimes就会消失.通常,您单击的项目仍然可见,但并非总是可见.有时整件事都会消失.四处移动鼠标将带回元素的一部分,使用滚轮或箭头键滚动只需单击一次即可带回元素.你可以在https://nikeplusphp.charanj.it上看到它(间歇性地)发生-你可能必须点击几个导航链接几次才能看到它发生.

我也try 过z索引和可见性/显示类型,但没有成功.

我遇到了this question个问题,但解决方案对我根本不起作用.IE和Firefox运行良好,这似乎是webkit的一个问题.

这是一个已知问题,还是有修复程序可以使固定元素保持可见?

Update:

只有top: 0;个元素的效果,我试了bottom: 0;个,效果和预期的一样.

推荐答案

这是一个尚未解决的webkit问题,奇怪的是,使用javascript而不是#url值进行跳转并不会导致问题.为了解决这个问题,我提供了一个JavaScript版本,该版本采用锚定值并找到具有该ID的元素的绝对位置,然后跳转到该位置:

var elements = document.getElementsByTagName('a');
for(var i = 1; i < elements.length; i++) {
    elements[i].onclick = function() {
        var hash = this.hash.substr(1),
            elementTop = document.getElementById(hash).offsetTop;
        window.scrollTo(0, elementTop + 125);
        window.location.hash = '';
        return false;
    }
}

我可以进一步改进这一点,只是它只查找以#开头的链接,而不是它找到的a标签.

Css相关问答推荐

如何在悬停时缓慢更改渐变 colored颜色 ?

当具有外部高度的网格项溢出时,为什么溢出滚动端口填充不应用于网格容器?

material 设计--Bootstrap输入域问题

本机CSS嵌套混乱

导航栏没有使用nextui获取页面的全部宽度

位置:固定元素只是不固定

使用普通 CSS 的视口对角线长度

Z Index 复杂性 - 如何将组件放置在 div 内部以相对于其级别外部的组件具有更高的 z-index 值?

将 tailwincss 转换为普通 CSS?

做一个像CodeSandbox的console那样的可拖拽的split panel

如何在不使用 !important 的情况下提高优先级?

如何给三角形添加渐变?

如何让我的 CSS 代码响应小屏幕?

如何使单选按钮看起来像切换按钮

是否可以删除悬停在链接上时出现的手形光标? (或将其设置为普通指针)

Highcharts 图表选项 backgroundColor:'transparent' 在 IE 8 上显示黑色

弹性框中的边距折叠

Unicode 通过 CSS :before

background-position-x (background-position-y) 是标准的 W3C CSS 属性吗?

使图像具有响应性 - 最简单的方法