我想使用带有Bootstrap的菜单栏,它始终位于页面顶部。因此我使用了班级navbar-fixed-top
。我使用了这篇文章最后的代码,并遇到了我的内容可见性问题
主要内容部分与菜单重叠。
在http://getbootstrap.com/examples/starter-template/上,通过向正文添加padding-top: 50px;
来解决问题。但是当菜单包装并且变得大于50px时,这不起作用:
引导程序中是否有一个类可以解决这个问题?或者我是否必须添加一个JavaScript来监听窗口大小的变化并调整padding-top?我不知道该怎么做,但这是我想到的唯一一件事,......
CODE:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap</title>
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<style>
h1 {
font-size: 5em;
}
body {
/*
padding-top: 50px;
*/
}
</style>
</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="">Project name</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#item01">Item01</a></li>
<li><a href="#item02">Item02</a></li>
<li><a href="#item03">Item03</a></li>
<li><a href="#item04">Item04</a></li>
<li><a href="#item05">Item05</a></li>
<li><a href="#item06">Item06</a></li>
<li><a href="#item07">Item07</a></li>
<li><a href="#item08">Item08</a></li>
<li><a href="#item09">Item09</a></li>
<li><a href="#item10">Item10</a></li>
<li><a href="#item11">Item11</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container"">
<div>
<h1 id="about">My first template</h1>
<p class="lead">Dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content.</p>
<p class="lead">Dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content.</p>
<p class="lead">Dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content, dummy content.</p>
</div>
<div id="contact" style="margin: 100em 0;">Contact us</div>
</div><!-- /.container -->
<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script>
/* jQuery test. */
$(function() {
$('h1').html("Test");
});
</script>
</body>
</html>
答案 0 :(得分:2)
我不知道修复此问题的引导类。当你提到的时,你当然可以为你的窗口调整大小添加一个监听器。它可以解决你的身高并不总是50px的问题。应该是有效的:
$(window).on('resize', function(){
var navHeight = $('nav').height();
$('body').css('padding-top', navHeight + 'px');
});
这是未经测试的,但应该让你入门。希望这有帮助!
答案 1 :(得分:0)
当你使用“position:fixed”时,元素被从“流”中取出并相对于窗口而不是其他元素定位。因此,您必须添加一个边距,就像它们在引导程序示例中所做的那样,该菜单不能覆盖底层内容。你也可以添加填充到body,但我更喜欢在元素上使用margin。
如果您不知道正手菜单的高度,我建议您使用@wrxsti写的答案。
答案 2 :(得分:-2)
在CSS中为.navbar
提供margin-bottom
。那应该解决它。