【问题标题】:good way to make navbar responsive使导航栏响应的好方法
【发布时间】:2020-02-15 17:00:17
【问题描述】:

我有一个导航栏,左侧有 3 个按钮,右侧有一个搜索栏。我相信我写了不好的(不是正确的方式)代码来使它们响应,但它们仍然对中小屏幕没有响应。我只是想找出让他们响应的好方法。我正在尝试制作一个如下图所示的页面。

stackblitz link

  .searchbar{
    width: 400px;
  }
    .btn-primary{
    background-color: #002B42;
    padding:10px;
    font-size: 12px;
    border-radius: 4px;
    margin-left: 3px;
    font-family: Arial, Helvetica, sans-serif;
  }
  .btn-light{
     margin-left: 30px; 
    padding:10px;

    background-color: transparent;
    border: none;
    color: black;
    font-size: 13px;
    outline: none;
  }
<nav class="navbar navbar-expand-md navbar-light fixed-top bg-light">

<ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <button type="button" class="btn btn-primary"><i class="fa fa-bars" aria-hidden="true">&nbsp;&nbsp;SAVED LISTS</i></button>      </li>
      <li class="nav-item">
        <button class="btn btn-light"> <i class="fa fa-filter" aria-hidden="true">&nbsp;&nbsp; SAVED FILTER</i>  </button> 
      </li>     
      <li class="nav-item">
        <button class="btn btn-light"> <i class="fa fa-history" aria-hidden="true">&nbsp;&nbsp; SEARCH HISTORY</i>  </button> 
      </li>
    </ul>

  <div class="ml-auto">
    <input class="form-control searchbar" name="search" [(ngModel)]="search" type="search" placeholder="Search" />
  </div>
</nav

【问题讨论】:

    标签: html css angular bootstrap-4


    【解决方案1】:

    首先,您不需要为.searchbar 类设置宽度400px。 通过设置媒体查询,取消固定导航栏以获得更小的宽度。这样更适合用户体验。

    在我看来,最标准的是 Bootstrap 本身所建议的。 最好将您的&lt;ul class="navbar-nav mr-auto"&gt; 插入&lt;div class="collapse navbar-collapse" id="my-navbar"&gt; 并放置一个按钮作为导航栏切换器。 并使用my-2 my-md-0 类而不是ml-auto 类进行搜索包装 如下

    body{
        padding-top: 60px;
    }
    .search-wrapper{
        flex-grow: 1;
       
    }
        .btn-primary{
        background-color: #002B42;
        font-size: 12px;
        border-radius: 4px;
        font-family: Arial, Helvetica, sans-serif;
      }
      .btn-light{
        background-color: transparent;
        border: none;
        color: black;
        font-size: 13px;
        outline: none;
      }
    
      .items{
          margin-top: ;
      }
    
      
      @media only screen and (max-width: 768px) {
          body{
              padding-top: 0!important;
          }
        .navbar{
            position: relative;
        }
        .navbar-nav{
            align-items: center;
            margin: 15px 0;
        }
        .nav-item{
            margin:10px 0;
        }
      }
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
        <link rel="stylesheet" href="style.css">
        <title>Document</title>
    </head>
    <body>
        
        <nav class="navbar navbar-expand-md navbar-light fixed-top bg-light">
    
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#my-navbar" aria-controls="my-navbar" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
              </button>
    
              <div class="collapse navbar-collapse" id="my-navbar">
                <ul class="navbar-nav mr-auto">
                    <li class="nav-item active">
                      <button type="button" class="btn btn-primary"><i class="fa fa-bars" aria-hidden="true">&nbsp;&nbsp;SAVED LISTS</i></button>      </li>
                    <li class="nav-item">
                      <button class="btn btn-light"> <i class="fa fa-filter" aria-hidden="true">&nbsp;&nbsp; SAVED FILTER</i>  </button> 
                    </li>     
                    <li class="nav-item">
                      <button class="btn btn-light"> <i class="fa fa-history" aria-hidden="true">&nbsp;&nbsp; SEARCH HISTORY</i>  </button> 
                    </li>
                  </ul>
              </div>
            
            
              <div class="my-2 my-md-0 search-wrapper">
                <input class="form-control searchbar" name="search" [(ngModel)]="search" type="search" placeholder="Search" />
              </div>
            </nav>
    
            <div class="items">
                <ol>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                    <li>dhsiudshdsds</li>
                </ol>
            </div>
    
    
            <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    
    </body>
    </html>

    【讨论】:

    • 确保jquery、popper.js和bootstrap.js按顺序放置
    • 是的,它现在可以工作,但我需要增加搜索栏宽度和每个按钮之间的间距。
    • 所以你可以为搜索包装设置 flex-grow:1 和 margin:10px 0;对于每个导航项。我编辑了答案
    猜你喜欢
    • 1970-01-01
    • 2018-01-27
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多