Bootstrap 3.1.1 Nav Bar Maximized Input No Longer

2020-02-28 10:30发布

Question: How can I get a maximized search input in a Bootstrap 3.2.0 nav bar?

In Bootstrap 3.1.1 I used the following code for a fixed bottom nav bar to display a maximized search input.

<nav class="navbar navbar-default navbar-fixed-bottom" role="seasrch">
    <div class="container">
        <form class="navbar-form">
            <div class="form-group">
                <div class="input-group input-group-sm">
                    <div class="input-group-btn">
                        <a href="#" id="new_term" class="btn btn-default" role="button"><span class="glyphicon glyphicon-leaf"></span>&nbsp;&nbsp;New</a>
                        <a href="/terms.php" class="btn btn-default" role="button"><span class="glyphicon glyphicon-tree-deciduous"></span>&nbsp;&nbsp;All</a>
                    </div>
                    <input type="input" class="form-control" name="search_bar_text" />
                    <div class="input-group-btn">
                        <button class="btn btn-default"><span class="glyphicon glyphicon-search"></span></button>
                    </div>
                </div>
            </div>
        </form>
    </div>
</nav>

And it looked like this: Picture of maximized search using Bootstrap 3.1.1

My nav bar looks like this, after upgrading to Bootstrap 3.2.0: Picture of small search using Bootstrap 3.2.0

3条回答
成全新的幸福
2楼-- · 2020-02-28 10:40

Just add to your custom css file:

.navbar-form .input-group {
    display: table;
}
.navbar-form .input-group .input-group-addon,
.navbar-form .input-group .input-group-btn {
    white-space: nowrap;
    width: 1%;
}
.navbar-form .input-group .form-control {
    width: 100%;
}
查看更多
兄弟一词,经得起流年.
3楼-- · 2020-02-28 10:40

edit: forms.less from bootstrap 3.2

uncomment line 411 and 422

.form-control {
  display: inline-block;
  // width: auto;  // uncomment by sebush // Prevent labels from stacking above inputs in `.form-group`
  vertical-align: middle;
}

.input-group {
  display: inline-table;
  vertical-align: middle;

  .input-group-addon,
  .input-group-btn,
  .form-control {
    // width: auto;  // uncomment by sebush
  }
}
查看更多
【Aperson】
4楼-- · 2020-02-28 10:48

I had the same unexpected experience as I upgraded from 3.1.1 to 3.2.0 - my (top) navbar-form which used to take full width of the screen was now just a short element. This is what worked for me in my custom CSS that loads up after Boostrap (that's how I override Bootstrap while preserving their original clean minified version):

/* Boostrap CSS 3.2.0 had these new lines in the navbar-form that
   were different from 3.1.1 [it's all in @media (min-width: 768px)
   so this behavior only shows up on higher resolutions] */
.navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
}
.navbar-form .input-group .input-group-addon,
.navbar-form .input-group .input-group-btn,
.navbar-form .input-group .form-control {
    width: auto;  /* HERE IS THE CULPRIT */
}
/** SOLUTION: in custom CSS **/
/* make sure navbar-form's input-group goes 100% i.e. full width of screen 
   to compliment the display: inline-table; that showed up in 3.2.0 */
.navbar-form .input-group {
      width: 100%;
}
/* override width: auto; that showed up in 3.2.0
   with at least 1px for the addon or btn (I had an addon) */
.navbar-form .input-group .input-group-addon,
.navbar-form .input-group .input-group-btn {
      width: 1px;
}
/* separate .form-control and give it width: 100%; */
.navbar-form .input-group .form-control {
        width: 100%;
}
查看更多
登录 后发表回答