首页 文章

响应式引导程序导航栏中的中心内容

提问于
浏览
202

我无法将我的内容集中在引导程序导航栏中 . 我正在使用bootstrap 3.我读了很多帖子,但是使用的CSS或方法不能用于我的代码!我真的很沮丧,所以这就像我的最后一个选择 . 任何帮助,将不胜感激!

<!DOCTYPE html>
<html>
  <head>
    <title>Navigation</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="css/style.css" rel="stylesheet" media="screen">
  </head>
  <body>
    <div class="container">
      <nav class="navbar navbar-default" role="navigation">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
          <li><a href="#">Link</a></li>
            <li><a href="#">Link</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
              <ul class="dropdown-menu">
                <li><a href="#">Action</a></li>
                <li><a href="#">Another action</a></li>
                <li><a href="#">Something else here</a></li>
                <li><a href="#">Separated link</a></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>
        </div><!-- /.navbar-collapse -->
      </nav>
      <h1>Home</h1>

   </div>
     <!--JAVASCRIPT-->
   <script src="js/jquery-1.10.2.min.js"></script>
   <script src="js/bootstrap.min.js"></script>
 </body>
</html>

https://jsfiddle.net/amk07fb3/

10 回答

  • 2

    原帖是询问如何将折叠的导航栏居中 . 要将元素置于普通导航栏上,请尝试以下操作:

    .navbar-nav {
        float:none;
        margin:0 auto;
        display: block;
        text-align: center;
    }
    
    .navbar-nav > li {
        display: inline-block;
        float:none;
    }
    
  • 19

    我想这就是你要找的东西 . 您需要从内部导航中删除 float: left 以使其居中并使其成为内联块 .

    .navbar .navbar-nav {
      display: inline-block;
      float: none;
      vertical-align: top;
    }
    
    .navbar .navbar-collapse {
      text-align: center;
    }
    

    http://jsfiddle.net/bdd9U/2/

    Edit: 如果您只希望在导航未折叠时发生此效果,请将其包围在相应的媒体查询中 .

    @media (min-width: 768px) {
        .navbar .navbar-nav {
            display: inline-block;
            float: none;
            vertical-align: top;
        }
    
        .navbar .navbar-collapse {
            text-align: center;
        }
    }
    

    http://jsfiddle.net/bdd9U/3/

  • 4

    对于布局而言,还有另一种方法可以将导航栏放在容器中,并且不需要任何CSS或Bootstrap覆盖 .

    只需在导航栏周围放置一个带有Bootstrap container 类的div . 这将使链接在导航栏中居中:

    <nav class="navbar navbar-default">
      <!-- here's where you put the container tag -->
      <div class="container">
    
        <div class="navbar-header">
        <!-- header and collapsed icon here -->
        </div>
    
        <div class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
          <!-- links here -->
          </ul>
        </div>
      </div> <!-- close the container tag -->
    </nav> <!-- close the nav tag -->
    

    如果您希望将主体内容对齐到中心导航栏,则还要将该主体内容放在Bootstrap container 标记中 .

    <div class="container">
      <! -- body content here -->
    </div>
    

    不是每个人都可以使用这种类型的布局(有些人需要将导航栏本身嵌套在 container 中) . 尽管如此,如果你能做到这一点,它是一种简单的方法来让你的导航栏链接和身体居中 .

    你可以在这个完整的页面中看到结果JSFiddle:http://jsfiddle.net/bdd9U/231/embedded/result/

    资料来源:http://jsfiddle.net/bdd9U/229/

  • 446

    这段代码对我有用

    .navbar .navbar-nav {
        display: inline-block;
        float: none;
    }
    .navbar .navbar-collapse {
        text-align: center;
    }
    
  • 12

    来自bootstrap官方网站(而且,几乎就像Eric S. Bullington所说的那样 .

    https://getbootstrap.com/components/#navbar-default

    示例导航栏看起来像:

    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <!-- Brand and toggle get grouped for better mobile display -->
            <div class="navbar-header">
            ...etc
    

    以导航为中心,这就是我所做的:

    <div class="container-fluid" id="nav_center">
    

    CSS:

    @media (min-width:768px) { /* don't break navbar on small screen */
        #nav_center {
            width: 700px /* need to found your width according to your entry*/
        }
    }
    

    使用class =“container”和navbar-right或left,当然你可以按类替换id . :d

  • 3

    Update 2018

    Bootstrap 4

    Navst内容更容易集中在Bootstrap 4中,您可以在此处看到许多居中情景:https://stackoverflow.com/a/20362024/171456

    Bootstrap 3

    另一种似乎尚未得到回答的情景是 both brand and navbar links . 这是一个解决方案..

    .navbar .navbar-header,
    .navbar-collapse {
        float:none;
        display:inline-block;
        vertical-align: top;
    }
    
    @media (max-width: 768px) {
        .navbar-collapse  {
            display: block;
        }
    }
    

    http://www.codeply.com/go/1lrdvNH9GI

    另见:Bootstrap NavBar with left, center or right aligned items

  • 39

    似乎所有这些答案都涉及自举的自定义css . 我提供的答案仅使用bootstrap,所以我希望它可以用于那些想要限制自定义的人 .

    这是使用Bootstrap V3.3.7测试的

    <footer class="navbar-default navbar-fixed-bottom">
        <div class="container-fluid">
            <div class="row">
                <div class="col-xs-offset-5 col-xs-2 text-center">
                    <p>I am centered text<p>
                </div>
                <div class="col-xs-5"></div>
            </div>
        </div>
    </footer>
    
  • 4

    BootStrap的V4按照以下方式添加中心(对齐内容中心)和右对齐(对齐内容结束):https://v4-alpha.getbootstrap.com/components/navs/#horizontal-alignment

    <ul class="nav justify-content-center">
      <li class="nav-item">
        <a class="nav-link active" href="#">Active</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
    </ul>
    
  • 1

    使用以下html

    <link rel="stylesheet" href="app/components/directives/navBar/navBar.scss"/>
    <nav class="navbar navbar-default" role="navigation">
        <div class="container-fluid">
            <!-- Collect the nav links, forms, and other content for toggling -->
                <ul class="nav navbar-nav">
                    <li><h5><a href="#/">Home</a></h5></li>
                    <li>|</li>
                    <li><h5><a href="#products">About</a></h5></li>
                    <li>|</li>
                    <li><h5><a href="#">Contacts</a></h5></li>
                    <li>|</li>
                    <li><h5><a href="#cart">Cart</a></h5></li>
                </ul>
        </div><!-- /.container-fluid -->
    </nav>
    

    和css

    .navbar-nav {
      width: 100%;
      text-align: center;
    }
    .navbar-nav > li {
      float: none;
      display: inline-block;
    }
    .navbar-default {
      background-color: white;
      border-color: white;
    }
    .navbar-default .navbar-nav>.active>a, .navbar-default .navbar-nav>.active>a:hover, .navbar-default .navbar-nav>.active>a:focus{
      background-color:white;
    }
    

    根据您的需要进行修改

  • 1

    这应该工作

    .navbar-nav {
        position: absolute;
        left: 50%;
        transform: translatex(-50%);
    }
    

相关问题