我在网页顶部创建了固定导航。但随后包装内容会重叠。所以我用jQuery设置margin-top:
$('#wrapper').css('margin-top', function() {return $('nav').height();});

nav {
background-color: #cccccc;
position: fixed;
top: 0;
width: 100%;
line-height: 2.5;
}
@media screen and (min-width: 800px) {
nav {
line-height: 1.5;
}
}

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<nav>
NAV
</nav>
<div id="wrapper">
<header id="header" class="alt">
HEADER
</header>
<main>
Lorem <br>
ipsum <br>
dolor <br>
sit <br>
amet <br>
</main>
</div>
&#13;
但是,如果我在一个小窗口中打开页面然后最大化它,导航将调整大小,但margin-top
将保持不变。
据我了解,css
函数只调用一次。是否可以将margin-top
的{{1}}绑定到#wrapper
的{{1}}?
答案 0 :(得分:1)
将其设置为文档准备就绪并在窗口调整大小。例如:
function setWrapper() {
$('#wrapper').css('margin-top', $('nav').height() );
};
$(setWrapper);
$(window).resize(setWrapper);
您可能还想限制或取消对该功能的调用。
另一种方法是使用“常规”css和媒体查询来设置margin-top。
答案 1 :(得分:0)
调出窗口调整大小的设置:
$(window).resize(function(){
$('#wrapper').css('margin-top', function() {return $('nav').height();});
})
答案 2 :(得分:0)
你需要在开始时触发resize事件,如下面的
$(window).resize(function(){
$('#wrapper').css('margin-top', $('nav').height());
}).trigger('resize');