【问题标题】:How to make one form control or input-group in a bootstrap inline form expand?如何使引导内联表单中的一个表单控件或输入组扩展?
【发布时间】:2014-05-29 21:20:50
【问题描述】:

我有一个现在看起来像这样的表单:

我希望它看起来像这样,即第二个表单控件(或在本例中为输入组)尽可能地扩展,同时让选择找到它内部文本的自然大小:

当然,以流畅的方式适用于所有屏幕(足够宽)。这个表格的代码是这样的:

<form class="form-inline role="form">
  <select class="form-control" id="q_radius" name="q[radius]">
    <option value="5">Jobs within 5 miles of</option><!-- more options -->
  </select>
  <div class="input-group">
    <input class="form-control" id="q_address" name="q[address]" type="text" value="London Bridge, United Kingdom">
    <span class="input-group-btn">
       <button class="btn btn-primary" type="submit"><i class="fa fa-search"></i></button>
    </span>
  </div>
</form>

这是使用 Bootstrap 3.1。

这可能吗?我认为不是,但我想在认为不可能之前与其他人核实一下。

【问题讨论】:

  • 为什么投反对票?这个问题有什么问题?

标签: html css forms twitter-bootstrap


【解决方案1】:

这是另一种方法.. 使用display:inline

  <form class="form-inline" role="form">
    <div class="form-group pull-left"> 
    <select class="form-control" id="q_radius" name="q">
      <option value="5">Jobs within 5 miles of</option>
    </select>&nbsp;
    </div>
    <div class="form-group" style="display:inline;">
      <div class="input-group">
        <input class="form-control" id="q_address" name="a" type="text" value="London Bridge, United Kingdom">
        <span class="input-group-btn">
           <button class="btn btn-primary" type="submit"><i class="fa fa-search"></i></button>
        </span>
      </div>
    </div>
  </form>

http://www.bootply.com/gjjuyGKAwf

这种方法没有将表单控件包装在 Bootstrap 的网格col-* 中产生的差距@

【讨论】:

【解决方案2】:

您可以利用引导程序grid 系统来 完成你想要的。

我在您的表单中添加了一个引导行,然后添加了 2 个中等列。

HTML

 <form class="form-inline">
     <div class="row">
         <div class="col-md-2">
             <select class="form-control" id="q_radius" name="q[radius]">
                <option value="5">Jobs within 5 miles of</option><!-- more options -->
             </select>
         </div>
         <div class="col-md-9">
             <div class="input-group">
                <input class="form-control" id="q_address" name="q[address]" type="text" value="London Bridge, United Kingdom">
                <span class="input-group-btn">
                   <button class="btn btn-primary" type="submit"><i class="fa fa-search"></i></button>
               </span>
             </div>
          </div>
      </div>
  </form>

Demo

【讨论】:

  • 我玩了一点这样的解决方案,但它存在选择大小可变的问题,除了完美的大小之外,它看起来很难看。
  • 我明白了,您可以尝试在您的选择上设置max-width
【解决方案3】:

你可以这样做

http://codepen.io/anon/pen/HbkGA

浮动和保证金的组合在这种情况下效果很好。

HTML

<form class="form-inline role="form">
  <div class="select-outer">
    <select class="form-control" id="q_radius" name="q[radius]">
      <option value="5">Jobs within 5 miles of</option>
    </select>
  </div>
  <div class="input-group">
    <span class="input-group-btn">
       <button class="btn btn-primary" type="submit"><i class="fa fa-search"></i></button>
    </span>
    <div class="input-wrap">
      <input class="form-control" id="q_address" name="q[address]" type="text" value="London Bridge, United Kingdom">
    </div>
  </div>
</form>

CSS

.form-inline .select-outer {
  float:left;
  width: 200px
}
.input-group {
  margin-left: 200px
}

.input-group-btn {
  float:right;
  width: 30px;
  height: 30px
}

.input-wrap {
  margin-right: 30px
}

.input-wrap input {
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}
.fa-search {
  display: inline-block;
}

【讨论】:

    【解决方案4】:
    .col-left {
       width: 200px;
       float: left;
        margin-right: 10px;
      }
    
      .col-right {
         width: calc(100% - 15em);
          float: left;
      }
    
    #q_address {
      width: 90%;
    }
    

    HTML:col-leftcol-right 类添加到选择框和搜索框。

    <form class="form-inline role="form">
      <select class="form-control col-left" id="q_radius" name="q[radius]">
        <option value="5">Jobs within 5 miles of</option>
        <option value="10" selected="selected">Jobs within 10 miles of</option>
        <option value="20">Jobs within 20 miles of</option>
        <option value="50">Jobs within 50 miles of</option>
        <option value="100">Jobs within 100 miles of</option>
        <option value="99999">All jobs</option>
      </select>
      <div class="input-group col-right">
        <input class="form-control" id="q_address" name="q[address]" type="text" value="London Bridge, United Kingdom">
        <span class="input-group-btn">
           <button class="btn btn-primary" type="submit"><i class="fa fa-search"></i></button>
        </span>
      </div>
    </form>
    

    DEMO

    【讨论】:

    • 感谢@mohamedrias。我不想使用这样的解决方案的原因是因为它会使左侧的选择变大和缩小,当它的内容太大或太小时看起来很糟糕。
    • 在这种情况下,定义选择框的宽度,使用 calc() 减去选择框的宽度。使搜索框完全占据剩余宽度
    猜你喜欢
    • 1970-01-01
    • 2014-01-28
    • 2018-09-28
    • 2014-05-11
    • 2019-04-26
    • 2013-08-13
    • 1970-01-01
    • 2018-06-15
    • 2017-03-28
    相关资源
    最近更新 更多