我有一个使用导航栏的网页,使用以下代码:
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,但它们没有区别。我想不出更多的解决方案。
固定项目的样式不是相对于主体的,而是相对于窗口的,因此主体上的填充对导航栏没有影响。
这里有一个问题,询问同样的事情,但更详细: