【问题标题】:Create a toggle search box in Navbar with Bootstrap 4使用 Bootstrap 4 在导航栏中创建切换搜索框
【发布时间】:2020-04-06 23:06:21
【问题描述】:

我正在尝试在 SEARCH BOX 中创建类似的效果,例如 uikit #SEARCH IN NAVBAR with Bootstrap,但直到现在都没有成功。

示例 -> https://codepen.io/thiagobraddock/pen/mdJNMBJ

<div class="uk-navbar-item uk-width-expand">
    <form class="uk-search uk-search-navbar uk-width-1-1">
        <input class="uk-search-input" type="search" placeholder="Search..." autofocus>
    </form>
</div>

这里有完整的例子 -> https://getuikit.com/docs/search

“搜索图标可用作打开导航栏内搜索的开关[...]”

当点击搜索图标时,输入字段覆盖了所有“行”,看起来很简单但我找不到任何示例,我确实搜索了很多。

谢谢:)

【问题讨论】:

    标签: bootstrap-4 uisearchbar searchbar


    【解决方案1】:

    Bootstrap 4 不提供这种“开箱即用”,但您可以使用 Collapse 组件轻松实现它。

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <title>Bootstrap Example</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@4.x/css/materialdesignicons.min.css">
    </head>
    <body>
      <nav class="navbar navbar-expand navbar-light bg-light">
        <a class="navbar-brand" href="#">Brand</a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar1">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbar1">
          <ul class="navbar-nav">
            <li class="nav-item active">
              <a class="nav-link" href="#">Link</a>
            </li>
            <li class="nav-item">
              <a class="nav-link" href="#">Link</a>
            </li>
          </ul>
          <ul class="navbar-nav ml-auto">
            <li class="nav-item d-flex">
              <div class="collapse fade" id="searchForm">
                <input id="search" type="search" class="form-control border-0 bg-light" placeholder="search" />
              </div>
              <a class="nav-link ml-auto" href="#searchForm" data-target="#searchForm" data-toggle="collapse">
                <i class="mdi mdi-magnify"></i>
              </a>
            </li>
          </ul>
        </div>
      </nav>
      <div class="container py-4">
        <div class="row">
          <div class="col">
            <h2 class="font-weight-light">Hello codeplyer?</h2>
            <p>
              This is a Bootstrap starter example snippet.
            </p>
          </div>
        </div>
      </div>
    </body>
    </html>

    https://codeply.com/p/x0lPBz5p63


    而且,这里有一个更强大的示例,其中 full-width 搜索覆盖了整个导航栏: https://codeply.com/p/K5PKPo5c7f

    【讨论】:

      【解决方案2】:

      只需在元素上使用 Jquery;s toggle() 就可以了:

      <!DOCTYPE html>
      <html lang="en">
      
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css">
          <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.min.css">
          <link rel="stylesheet" href="style.css">
          <title>Title</title>
      </head>
      
      <body>
          <nav class="navbar navbar-expand-lg navbar-light bg-light">
              <a class="navbar-brand" href="#">Navbar</a>
              <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
              </button>
      
              <div class="collapse navbar-collapse" id="navbarSupportedContent">
                  <ul class="navbar-nav mr-auto">
                      <li class="nav-item active">
                          <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
                      </li>
                      <li class="nav-item">
                          <a class="nav-link" href="#">Link</a>
                      </li>
                      <li class="nav-item dropdown">
                          <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                      Dropdown
                    </a>
                          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                              <a class="dropdown-item" href="#">Action</a>
                              <a class="dropdown-item" href="#">Another action</a>
                              <div class="dropdown-divider"></div>
                              <a class="dropdown-item" href="#">Something else here</a>
                          </div>
                      </li>
                      <li class="nav-item">
                          <a class="nav-link disabled" href="#">Disabled</a>
                      </li>
                  </ul>
                  <form class="form-inline my-2 my-lg-0">
      
                      <input id="search1" class="form-control mr-sm-2" type="search" placeholder="search" aria-label="Search">
                      <button id="search2" class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
                  </form>
              </div>
          </nav>
      
          <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.slim.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
          <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/js/bootstrap.min.js"></script>
          <script>
              $('#search2').click(function() {
                  $('#search1').toggle();
              });
          </script>
      </body>
      
      </html>
      

      【讨论】:

        猜你喜欢
        • 2018-01-22
        • 2019-04-12
        • 1970-01-01
        • 2018-10-07
        • 1970-01-01
        • 2018-09-03
        • 1970-01-01
        • 2018-02-07
        • 2020-09-03
        相关资源
        最近更新 更多