Bootstrap 新手问题

Bootstrap newbie issues

刚开始尝试Bootstrap;我有少量 HTML 和 JS 经验。 获得了一个使用导航栏和标签页的基本页面,但发现了两个问题: a) 每个标签页的顶部隐藏在导航栏下; b) 'login' 的页面第一次出现正常,但在显示其他页面后拒绝再次出现。 显示问题的代码在 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>

对于您的第一个问题,如果您将 header 更改为已修复,这会导致该元素从流程中删除,您需要下推其余内容。这是通过添加顶部边距或填充来完成的:

#myTabContent { margin-top:70px; }

#myTabContent { padding-top:70px; }

您的登录选项卡不起作用,因为它与其他选项 ul 不同。如果您在使用选项卡时查看浏览器,您会注意到当您单击选项时,active class 会添加到您单击的选项中,并从 ul。如果您的选择已经有了 active class 则什么也不会发生。因此,当您单击 #signin 元素时,active class 不会从第一个 ul 的选项中删除,反之亦然。

要解决此问题,您需要改变方法。两个最简单的选择是将两个 ul 合并为一个(这将导致登录选项不再出现在右侧)或将登录选项卡更改为其他类型的 bootstrap 元素(例如模式)并将其显示在其余内容上。

此外,您只是打错了字 (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/

附带说明一下,不要忘记在 fiddle 等上分叉或保存您的更改,然后再发布它们。您的 link 转到具有不同代码的 fiddle。

如果您使用固定位置的导航栏,请查看 GetBootstrap.com 上的示例。您会注意到 body 有一个 padding-top: 等于或大于导航栏的高度,这将阻止您在紧随其后的每个元素上添加边距或填充。

body {padding-top:70px;}

如果你使用固定位置导航栏。 examples/docs 对此进行了解释。

Body padding required

The fixed navbar will overlay your other content, unless you add padding to the top of the <body>. Try out your own values or use our snippet below. Tip: By default, the navbar is 50px high.

http://getbootstrap.com/components/#navbar