粘性导航栏延伸到右侧越过边距

问题描述 投票:0回答:1

我有一个使用导航栏的网页,使用以下代码:

body {
  margin: 3em;
}
#navbar {
  overflow: hidden;
  background-color: #333;
}
.sticky {
  position: fixed;
  top: 0;
  width: 100%;
}
<div id="navbar">
  <a class="active" href="javascript:void(0)">Home</a>
  <a href="javascript:void(0)">News</a>
  <a href="javascript:void(0)">Contact</a>
</div>
window.onscroll = function() {myFunction()};

var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;

function myFunction() {
  if (window.pageYOffset >= sticky) {
    navbar.classList.add("sticky")
  } else {
    navbar.classList.remove("sticky");
  }
}

导航栏 div 延伸超过了 body 的右侧,即使 body 的边距为 3em。如何防止div扩展?

我尝试将

width: 100%;
box-sizing: border-box;
添加到
#navbar
css,但它们没有区别。我想不出更多的解决方案。

html css navigationbar
1个回答
0
投票

固定项目的样式不是相对于主体的,而是相对于窗口的,因此主体上的填充对导航栏没有影响。

这里有一个问题,询问同样的事情,但更详细:

https://stackoverflow.com/questions/22159588/position-fixed-with-width-100-is-ignoring-body-padding#:~:text=A%20fixed%20element%20is%20not,使用%20a %20padding%20on%20that.

© www.soinside.com 2019 - 2024. All rights reserved.