Bootstrap新手问题

时间:2015-01-08 22:03:14

标签: html css twitter-bootstrap-3

刚开始尝试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>

2 个答案:

答案 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像素。

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