在Bootstrap 4中

时间:2017-08-25 11:13:29

标签: jquery html css twitter-bootstrap bootstrap-4

我有一个导航栏,我已使用split button dropdowns和常规nav-items而没有下拉列表。

我有点工作,但我试图让导航元素填满浏览器窗口。我已经看到了对“工厂”Bootstrap类的引用,但是我无法使它工作。

我有两个问题:

  1. 在Bootstrap 4中执行此操作的“工厂”方法是什么?

  2. 为什么按钮元素之间的间距不一致?

  3. body {
      padding-top: 70px
    }
    
    .vcenter {
      display: inline-block;
      vertical-align: middle;
      float: none;
    }
    
    
    /* CSS menu */
    .navbar, .navbar.btn-secondary {
      /* For browsers that do not support gradients */
      background-color: #b32017;
      /* For Safari 5.1 to 6.0 */
      background: -webkit-linear-gradient(#b32017, #801710);
      /* For Opera 11.1 to 12.0 */
      background: -o-linear-gradient(#b32017, #801710);
      /* For Firefox 3.6 to 15 */
      background: -moz-linear-gradient(#b32017, #801710);
      /* Standard syntax */
      background: linear-gradient(#b32017, #801710);
    }
    
    .navbar .btn-secondary {
      /*background-color: #b32017;*/
      /* For browsers that do not support gradients */
      background-color: #b32017;
      /* For Safari 5.1 to 6.0 */
      background: -webkit-linear-gradient(#b32017, #801710);
      /* For Opera 11.1 to 12.0 */
      background: -o-linear-gradient(#b32017, #801710);
      /* For Firefox 3.6 to 15 */
      background: -moz-linear-gradient(#b32017, #801710);
      /* Standard syntax */
      background: linear-gradient(#b32017, #801710);
    }
    
    .navbar img {
      max-height: 40px;
    }
    
    .navbar .btn {
      /* Removes Bootstrap's border */
      border: 0px;
    }
    
    .navbar .navbar-brand {
      color: #ffffff;
    }
    
    .navbar .navbar-brand:hover, .navbar .navbar-brand:focus {
      color: #c1c1c1;
    }
    
    .navbar .navbar-text {
      color: #ffffff;
    }
    
    .navbar .navbar-nav .nav-link {
      color: #ffffff;
      border-radius: .25rem;
      margin: 0 0.25em;
    }
    
    .navbar .navbar-nav .nav-link:not(.disabled):hover, .navbar .navbar-nav .nav-link:not(.disabled):focus {
      color: #c1c1c1;
    }
    
    .navbar .navbar-nav .nav-item.active .nav-link, .navbar .navbar-nav .nav-item.active .nav-link:hover, .navbar .navbar-nav .nav-item.active .nav-link:focus, .navbar .navbar-nav .nav-item.show .nav-link, .navbar .navbar-nav .nav-item.show .nav-link:hover, .navbar .navbar-nav .nav-item.show .nav-link:focus {
      color: #c1c1c1;
      background-color: #801710;
    }
    
    .navbar .navbar-toggle {
      border-color: #801710;
    }
    
    .navbar .navbar-toggle:hover, .navbar .navbar-toggle:focus {
      background-color: #801710;
    }
    
    .navbar .navbar-toggle .navbar-toggler-icon {
      color: #ffffff;
    }
    
    .navbar .navbar-collapse, .navbar .navbar-form {
      border-color: #ffffff;
    }
    
    .navbar .navbar-link {
      color: #ffffff;
    }
    
    .navbar .navbar-link:hover {
      color: #c1c1c1;
    }
    
    @media (max-width: 767px) {
      .navbar .navbar-nav .open .dropdown-menu .dropdown-item .dropdown-menu.show {
        /* no gradient support */
        /* #cccccc */
        color: #ffffff;
    
        /* For browsers that do not support gradients */
        background-color: #ffffff;
        /* For Safari 5.1 to 6.0 */
        background: -webkit-linear-gradient(#ffffff, #cccccc);
        /* For Opera 11.1 to 12.0 */
        background: -o-linear-gradient(#ffffff, #cccccc);
        /* For Firefox 3.6 to 15 */
        background: -moz-linear-gradient(#ffffff, #cccccc);
        /* Standard syntax */
        background: linear-gradient(#ffffff, #cccccc);
    
      }
      .navbar .navbar-nav .open .dropdown-menu .dropdown-item:hover, .navbar .navbar-nav .open .dropdown-menu .dropdown-item:focus {
        color: #c1c1c1;
      }
      .navbar .navbar-nav .open .dropdown-menu .dropdown-item.active {
        color: #c1c1c1;
        background-color: #801710;
      }
    }
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" rel="stylesheet"/>
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
      <title>Experimental Test Page</title>
    </head>
    
    <body>
      <!-- Navigation -->
      <nav class="navbar fixed-top navbar-expand-sm bg-faded navbar-light">
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#nav-content" aria-controls="nav-content" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
      </button>
        <!-- Brand -->
        <a class="navbar-brand" href="#">
        </a>
        <div class="collapse navbar-collapse" id="nav-content">
          <ul class="navbar-nav btn-group">
            <!-- Home -->
            <li class="nav-item">
              <div class="btn-group">
                <a href="#" class="btn btn-secondary" role="button"><i class="fa fa-fw fa-home"><!-- --></i> Home</a>
                <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown">
                </button>
                <div class="dropdown-menu">
                  <a class="dropdown-item" href="#"><i class="fa fa-fw fa-map-marker"><!-- --></i>Hours &amp; Location</a>
                </div>
              </div>
            </li>
            <li class="nav-item">
              <div class="btn-group" role="button">
                <a href="#" class="btn btn-secondary" role="button">Section</a>
                <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown">
                </button>
                <div class="dropdown-menu">
                  <a class="dropdown-item" href="#">Item 1</a>
                  <a class="dropdown-item" href="#">Item 2</a>
                  <a class="dropdown-item" href="#">Item 3</a>
                  <a class="dropdown-item" href="#">Item 4</a>
                </div>
              </div>
            </li>
            <li class="nav-item">
              <a class="nav-link btn btn-secondary" href="#" role="button">Another Section</a>
            </li>
            <li class="nav-item">
              <a class="nav-link btn btn-secondary" href="#" role="button">Section</a>
            </li>
            <li class="nav-item">
              <a class="nav-link btn btn-secondary" href="#" role="button">Section</a>
            </li>
            <li class="nav-item">
              <div class="btn-group" role="button">
                <a href="#" class="btn btn-secondary" role="button">Products</a>
                <button type="button" class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown">
                </button>
                <div class="dropdown-menu">
                  <a class="dropdown-item" href="#">Item 1</a>
                  <a class="dropdown-item" href="#">Item 2</a>
                </div>
              </div>
            </li>
          </ul>
        </div>
      </nav>
    </body>
    
    </html>

4 个答案:

答案 0 :(得分:10)

您可以使用nav-justified,使用w-100确保导航栏导航为全宽...

<ul class="navbar-nav w-100 nav-justified">
      <li class="nav-item">..<li>
      <li class="nav-item">..<li>
</ul>

https://www.codeply.com/go/od0TnGfQv2

答案 1 :(得分:2)

我遇到了同样的问题,但有徽标。 我刚刚添加了nav-justified&amp; w-100类以及navbar-nav类。

这里是navbar的屏幕截图。 enter image description here

此处代码:

<nav class="navbar navbar-toggleable-md navbar-light bg-faded px-5">
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <a class="navbar-brand" href="#">
            <img src="img/logo.png" class="img-fluid" alt="Logo">
        </a>
        <div class="collapse navbar-collapse" id="navbarNav">
            <ul class="navbar-nav nav-justified w-100">
                <li class="nav-item active">
                    <a class="nav-link" href="#">About us</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#"> Services</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">  Mission & Vission</a>
                </li>
                <li class="nav-item dropdown">
                    <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        Brands
                    </a>
                    <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                        <a class="dropdown-item" href="#">Alo maids</a>
                        <a class="dropdown-item" href="#">Alo Technical</a>
                        <a class="dropdown-item" href="#">Something else here</a>
                    </div>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">   Brands</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">   Brands</a>
                </li>
            </ul>
        </div>
    </nav>

答案 2 :(得分:0)

添加班级w-100 @导航栏

并添加类nav-fill w-100 @ navbar-nav

<nav class="navbar navbar-expand-lg navbar-light w-100">
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#nvb1" aria-controls="nvb1" aria-expanded="false" aria-label="Menu switcher">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="nvb1">
        <ul class="navbar-nav nav-fill w-100">
            <li class="nav-item active"><a href="{{ url('/') }}" class="nav-link">Home</a></li>
            <li class="nav-item"><a href="{{ url('') }}" class="nav-link">Links</a></li>
            <li class="nav-item"><a href="{{ url('') }}" class="nav-link">Links</a></li>
        </ul>
    </div>
</nav>

答案 3 :(得分:0)

对于Bootstrap4,这会更好

<ul class="navbar nav  nav-justified">
    <li class="nav-item">Match Found</li>
    <li class="nav-item">Shortlist</li>               
</ul>