刚开始尝试Bootstrap;我有少量的HTML和JS经验。 有一个使用导航栏和标签页的基本页面,但发现了两个问题: a)每个选项卡页面的顶部隐藏在导航栏下; b)首次显示“登录”页面确定,但在显示其他页面后拒绝再次显示。 显示问题的代码位于jsfiddle。
<body>
<nav class="navbar navbar-default 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="#">BLE Log</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav" role="tablist">
<li class="active"><a href="#home" id="home-tab" role="tab" data-toggle="tab" aria-controls="home" aria-expanded="true">Home</a></li>
<li><a href="#profile" role="tab" id="profile-tab" data-toggle="tab" aria-controls="profile">Profile</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#signin" role="tab" id="signin-tab" data-toggle="tab" aria-controls="signin">Sign In</a></li>
</ul>
</div>
</div>
</nav>
<div id="myTabContent" class="tab-content">
<div role="tabpanel" class="tab-pane fade in active" id="home" aria-labelledBy="home-tab">
<div class="container">
<p>Line 1</p>
<p>Line 2</p>
<p>Line 3</p>
<p>Line 4</p>
<p>Line 5</p>
</div>
</div>
<div role="tabpanel" class="tab-pane fade" id="profile" aria-labelledBy="profile-tab">
<div class="container">
<div class="jumbotron" id="jumbo">
<p>Line 1</p>
<p>Line 2</p>
<h2>Navbar example</h2>
<p>This example is.....</p>
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane fade" id="signin" aria-labelledBy="signin-tab">
<div class="container">
<form class="form-signin">
<h3 class="form-signin-heading">Please sign in</h3>
<label for="inputEmail" class="sr-only">Username or Email address</label>
<input type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" id="inputPassword" class="form-control" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
</div>
</div>
</div>
答案 0 :(得分:3)
对于您的第一个问题,如果您更改要修复的标头,则会导致该元素从流中取出,您需要按下其余内容。这是通过向其添加上边距或填充来完成的:
#myTabContent { margin-top:70px; }
或
#myTabContent { padding-top:70px; }
您的登录标签不起作用,因为它与其他选项的ul
不同。如果您在使用选项卡时查看浏览器,您会注意到,当您单击选项时,active
类会添加到您单击的选项中,并从ul
中的其他选项中清除。如果您的选择已经有active
类,则没有任何反应。因此,当您点击#signin
元素时,active
类不会从第一个ul
中的选项中删除,反之亦然。
要解决此问题,您需要更改方法。两个最简单的选择是将两个ul
合并为一个(这会导致选择中的符号不再出现在右侧)或将登录选项卡更改为其他类型的引导元素(例如作为模态)并将其显示在其余内容上。
此外,您只有一个拼写错误(data-target
)。这样:
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data- target="#navbar" aria-expanded="false" aria-controls="navbar">
应该是这样的:
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
以下是一个实例:http://jsfiddle.net/npk9w0ak/1/
另外,在发布之前,不要忘记在小提琴上分叉或保存更改。您的链接会变成一个不同代码的小提琴。
答案 1 :(得分:2)
如果您使用固定位置导航栏,请查看GetBootstrap.com上的示例。您会注意到主体有一个填充顶部:等于或大于导航栏的高度,这将阻止您在紧随其后的每个元素上添加边距或填充。
body {padding-top:70px;}
如果使用固定位置导航栏。示例/文档解释了这一点。
需要身体填充
固定的导航栏将覆盖您的其他内容,除非您添加 填充到
<body>
的顶部。尝试自己的价值观或使用我们的 下面的片段。提示:默认情况下,导航栏高50像素。