【问题标题】:How to Overflow Bootstrap Navbar Without Distorting Its Height?如何在不扭曲其高度的情况下溢出引导导航栏?
【发布时间】:2016-07-31 02:21:58
【问题描述】:

我最近使用jquery-marcopolo 库来使用一些自动完成功能。它自然会扩展导航栏的高度。

这看起来很难看。我希望那些ol 元素溢出导航栏而不改变其高度。有什么办法吗?

script.js

$(document).ready(function(){
    var searchbox = $("#searchbox");

    searchbox.marcoPolo({
        url: "/api/entries/",
        formatItem: function(data, $item) {
            return data.title;
        },
        onSelect: function(data, $item) {
            window.location = "/blog/yazi/"+data.slug;
        }
    });
});

style.css

input.mp_input {
  border: 1px solid #000000;
  font: inherit;
  font-size: 100%;
  margin: 0;
  outline: none;
  padding: 3px;
  width: 250px;
}

/* Ordered list for display results. */
ol.mp_list {
  background-color: #FFFFFF;
  border-left: 1px solid #C0C0C0;
  border-right: 1px solid #C0C0C0;
  overflow: hidden;
  position: relative;
  width: inherit;
  z-index: 99999;
  list-style-type: none;
}

/* Each list item, regardless of success, error, etc. */
ol.mp_list li {
  border-bottom: 1px solid #C0C0C0;
  padding: 4px 4px 5px;
}

/* Each list item from a successful request. */
ol.mp_list li.mp_item {

}

/* Each list item that's selectable. */
ol.mp_list li.mp_selectable {
  cursor: pointer;
}

/* Currently highlighted list item. */
ol.mp_list li.mp_highlighted {
  background-color: #E0E0E0;
}

/* When a request is made that returns zero results. */
ol.mp_list li.mp_no_results {

}

/* When a request is made that doesn't meet the 'minChars' length option. */
ol.mp_list li.mp_min_chars {

}

/* When a request is made that fails during the ajax request. */
ol.mp_list li.mp_error {

}

html

<nav class="navbar navbar-default navbar-fixed-top">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only">Menü</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="/">Eray Erdin</a>
    </div>
    <div id="navbar" class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        <li><a href="/">Anasayfa</a></li>
        <li><a href="{% url 'blog-home' %}">Blog</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Ben <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="{% url 'kimdir' %}">Hakkımda</a></li>
            <li><a href="/iletisime-gec">Mesaj Gönder</a></li>
            <li role="separator" class="divider"></li>
            <li class="dropdown-header">Diğer</li>
            <li><a href="/meta">Platform Hakkında</a></li>
          </ul>
        </li>
      </ul>
      <div class="col-sm-3 col-md-3 pull-right">
        <form class="navbar-form" role="search">
        <div class="input-group">
            <input id="searchbox" type="text" class="form-control" placeholder="Ara" name="srch-term" data-provide="typeahead" />
        </div>
        </form>
      </div>
    </div><!--/.nav-collapse -->
  </div>
</nav>

环境

  • jQuery 2.2.3
  • jquery-marcopolo 1.8.1

【问题讨论】:

    标签: jquery html css twitter-bootstrap autocomplete


    【解决方案1】:

    The answer of kabaehr on this post 给了我修复.navbarmax-height 的想法。当我尝试时,它就像一个魅力。但是,它在更小的设备中取得了突破。

    所以我想到了使用 CSS 的媒体查询。感谢 Full Decent 对另一个问题https://stackoverflow.com/a/18850777/2926992(Bootstrap 3 的默认设备大小)的回答,我设法将max-height 设置为.navbar,而不会破坏较小的设备。如下:

    @media(min-width:768px){
        .navbar {
            overflow: visible;
            max-height: 60px;
        }
    }
    

    【讨论】:

      【解决方案2】:

      很难判断为导航栏设置了哪些 CSS 规则,但您可以尝试使用

      overflow: visible; 到导航栏

      和/或固定高度

      【讨论】:

      • 实际上,overflow 选项在 Bootstrap 中已经设置为 visible。然而,尽管max-height 解决了大于sm 的设备中的问题,但这次导航栏在小型设备中中断,因为max-height 已修复。这可以通过媒体查询来解决。因此,如果有人无法提供更好的解决方案,我会在稍后接受您的回答。谢谢。 :)
      • 这可能是因为你的课?为 div 设置:&lt;div class="col-sm-3 col-md-3 pull-right"&gt;。如果您希望始终保持相同的宽度,您可以设置 col-xs-3 这甚至适用于所有更高级别。所以你不必写class="col-xs-3 col-sm-3 col-md-3"
      • 问题不是宽度,而是高度。
      猜你喜欢
      • 2018-08-03
      • 2021-04-08
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多