搜索栏在Boostrap崩溃中的下拉栏外



我实际上有两个我需要帮助的问题:

  1. 出于某种原因,较小屏幕上的搜索栏从纳维托倒塌中掉下来,我不知道为什么。

  2. awesomplete.js或CSS似乎覆盖了搜索栏的宽度并将其推向左侧,我也不确定。

如果有人想对此进行破解,这是JSFIDDLE:https://jsfiddle.net/x4vusam1/

    .bg-steel {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#09c6f9+0,045de9+100 */
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#1e3b70+0,29539b+100 */
  background: purple;
}
.navbar-brand {
  color: white !important;
}
.btn {
  background-color: transparent !important;
}
.navbar-collapse {
  position: relative;
  padding-top: 20px !important;
  max-height: 400px;
}
.navbar-collapse form[role="search"] {
  position: absolute;
  right: 0;
  padding: 0;
  margin: 0;
  z-index: 9;
}
.navbar-collapse form[role="search"] button,
.navbar-collapse form[role="search"] input {
  padding: 8px 12px;
  border-width: 0;
  box-shadow: none;
  outline: none;
}
.navbar-collapse form[role="search"] input {
  padding: 16px 12px;
  font-size: 14pt;
  font-style: italic;
  color: rgb(160, 160, 160);
  box-shadow: none;
}
.navbar-collapse form[role="search"] button[type="reset"] {
  display: none;
}
@media (min-width: 768px) {
  .navbar-collapse {
    padding-top: 0 !important;
    padding-right: 38px !important;
  }
  .navbar-collapse form[role="search"] {
    width: 38px;
  }
  .navbar-collapse form[role="search"] input {
    font-size: 15pt;
    opacity: 0;
    display: none;
  }
  .navbar-collapse form[role="search"].active {
    width: 100% !important;
  }
  .navbar-collapse form[role="search"].active button,
  .navbar-collapse form[role="search"].active input {
    display: table-cell;
    opacity: 1;
  }
}


.awesomplete [hidden] {
    display: none;
}
.awesomplete .visually-hidden {
    position: absolute;
    clip: rect(0, 0, 0, 0);
}
.awesomplete {
    display: inline-block;
    position: relative;
}
.awesomplete > input {
    display: block;
}  

,所以我对您的代码进行了以下操作:

  1. 您不需要.navbar-collapse form[role="search"]上的position: absolute place navbar 中的右侧 - 而是将justify-content-end用于#navbarTogglerDemo02元素。
  2. 还将justify-content-end类添加到 input-group place <右侧的搜索栏。>

请参见下面的演示,updated fiddle

$(function() {
  $('body, .navbar-collapse form[role="search"] button[type="reset"]').on('click keyup', function(event) {
    //console.log(event.currentTarget);
    if (event.which === 27 && $('.navbar-collapse form[role="search"]').hasClass('active') ||
      $(event.currentTarget).attr('type') === 'reset') {
      closeSearch();
    }
  });
  function closeSearch() {
    let $form = $('.navbar-collapse form[role="search"].active');
    $form.find('input').val('');
    $form.removeClass('active');
  }
  $(document).on('click', '.navbar-collapse form[role="search"]:not(.active) button[type="submit"]', function(event) {
    event.preventDefault();
    let $form = $(this).closest('form'),
      $input = $form.find('input');
    $form.addClass('active');
    $input.focus();
  });
});
var aweInput = new Awesomplete(search);
search.addEventListener('awesomplete-select', function(e) {
  var url = e.text.value; // The value associated with the selection
  // Some optional actions:
  e.preventDefault(); // Prevent the URL from appearing in the input box
  e.target.value = e.text.label; // Set the value to the selected label
  aweInput.close(); // close the drop-down
  window.location.href = url;
});
.bg-steel {
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#09c6f9+0,045de9+100 */
  /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#1e3b70+0,29539b+100 */
  background: purple;
}
.navbar-brand {
  color: white !important;
}
.btn {
  background-color: transparent !important;
}
.navbar-collapse {
  position: relative;
  padding-top: 20px !important;
  max-height: 400px;
}
.navbar-collapse form[role="search"] {
  /* position: absolute; */
  right: 0;
  padding: 0;
  margin: 0;
  z-index: 9;
}
.navbar-collapse form[role="search"] button,
.navbar-collapse form[role="search"] input {
  padding: 8px 12px;
  border-width: 0;
  box-shadow: none;
  outline: none;
}
.navbar-collapse form[role="search"] input {
  padding: 16px 12px;
  font-size: 14pt;
  font-style: italic;
  color: rgb(160, 160, 160);
  box-shadow: none;
}
.navbar-collapse form[role="search"] button[type="reset"] {
  display: none;
}
@media (min-width: 768px) {
  .navbar-collapse {
    padding-top: 0 !important;
    padding-right: 38px !important;
  }
  .navbar-collapse form[role="search"] {
    width: 38px;
  }
  .navbar-collapse form[role="search"] input {
    font-size: 15pt;
    opacity: 0;
    display: none;
  }
  .navbar-collapse form[role="search"].active {
    width: 100% !important;
  }
  .navbar-collapse form[role="search"].active button,
  .navbar-collapse form[role="search"].active input {
    display: table-cell;
    opacity: 1;
  }
}
.awesomplete [hidden] {
  display: none;
}
.awesomplete .visually-hidden {
  position: absolute;
  clip: rect(0, 0, 0, 0);
}
.awesomplete {
  display: inline-block;
  position: relative;
}
.awesomplete>input {
  display: block;
}
<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.0/css/bootstrap.min.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script type="text/javascript" src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://use.fontawesome.com/releases/v5.7.1/css/all.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/awesomplete/1.1.4/awesomplete.js"></script>
<nav class="navbar fixed-top navbar-light bg-steel navbar-expand-md" role="navigation">
  <div class="container">
    <a class="navbar-brand" href="{% url 'main-home' %}">What's The Update?</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
    <div class="collapse navbar-collapse justify-content-end" id="navbarTogglerDemo02"> <!-- ADDED class --> 
      <form class="d-flex" role="search">
        <div class="input-group justify-content-end"> <!-- ADDED class --> 
          <input class="form-control awesomplete" id="search" type="text" list="games" placeholder="Search games..." />
          <datalist id="games">
                        
                        <option value="Google.com">Google</option>
                        <option value="Yahoo.com">Yahoo</option>
                        <option value="Wikipedia.org">Wikipedia</option>
                        <option value="Bing.com">Bing</option>
                        
                    </datalist>
          <div class="input-group-append">
            <button type="reset" class="btn">
                            <span class="far fa-times-circle">
							<span class="sr-only">Close</span>
                            </span>
                        </button>
          </div>
          <div class="input-group-append">
            <button type="submit" class="btn btn-light">
                            <span class="fas fa-search">
						    <span class="sr-only">Search</span>
                            </span>
                        </button>
          </div>
        </div>
      </form>
    </div>
  </div>
</nav>

class="d-flex"

的形式中取出您的内容
// form <form class="d-flex" role="search"> // remove the form
     <div class="input-group">
          // your content
     </div>             
//  </form>

最新更新