【问题标题】:Display two fields side by side in a Bootstrap Form在引导表单中并排显示两个字段
【发布时间】:2015-02-11 15:20:42
【问题描述】:

我正在尝试在具有 2 个文本框的表单上显示年份范围输入。一个用于最小值,一个用于最大值,并用破折号分隔。

我希望使用引导程序将这一切都放在同一行,但我似乎无法让它正常工作。

这是我的代码:

<form id="Form1" class="form-horizontal" role="form" runat="server">
    <div class="row">
        <div class="form-group">
            <label for="tbxContactPhone" class="col-sm-2 control-label">Year</label>
            <div class="col-sm-4">
                <asp:TextBox ID="TextBox1" CssClass="form-control" runat="server" MaxLength="4" />
            </div>
            <label class="col-sm-2 control-label">-</label>
            <div class="col-sm-4">
                <asp:TextBox ID="TextBox2" CssClass="form-control" runat="server" MaxLength="4" />
            </div>
        </div>
    </div>
</form>

这是现在的样子:

【问题讨论】:

    标签: html css asp.net twitter-bootstrap twitter-bootstrap-3


    【解决方案1】:

    问题是.form-control 类呈现像DIV 元素,根据normal-flow-of-the-page 在新行上呈现。

    解决此类问题的一种方法是使用display:inline 属性。因此,使用display:inline 创建一个自定义CSS 类,并使用.form-control 类将其附加到您的组件。你的组件也必须有一个width

    还有其他处理此问题的方法(例如将您的 form-control 组件安排在任何 .col 类中),但最简单的方法是让您的 .form-control 成为 inline 元素(方式span 会渲染)

    【讨论】:

      【解决方案2】:

      使用input group 在同一行设置样式怎么样?

      这是要使用的最终 HTML

      <div class="input-group">
          <input type="text" class="form-control" placeholder="Start"/>
          <span class="input-group-addon">-</span>
          <input type="text" class="form-control" placeholder="End"/>
      </div>
      

      看起来像这样

      这是一个堆栈片段演示

      <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.css" rel="stylesheet"/>
      
      <div class="input-group">
          <input type="text" class="form-control" placeholder="Start"/>
          <span class="input-group-addon">-</span>
          <input type="text" class="form-control" placeholder="End"/>
      </div>

      我将把它作为练习留给读者,将其翻译成asp:textbox 元素

      【讨论】:

      • 问题是一旦你删除插件,线条就会被破坏。如果我将span 的可见性设置为hidden,它仍然会留下空白,设置它的width 并没有多大帮助。
      • @Shimmy,当然,破坏引导程序意图 HTML 结构会破坏格式。对于这个解决方案,这并不是一个真正的问题,而是一个全新的用例。 OP 有一个连字符,所以我也包括了一个。根据您要执行的操作,您可以删除连字符并替换为&amp;nbsp,并将跨度的填充设置为1px。或者,您可以将每个输入放入 .col-xs-6 容器中,以便将两个并排放置。但我不会称当前的解决方案“有问题”
      • 如果我删除 &lt;span class="input-group-addon"&gt;-&lt;/span&gt; 然后下一行出现。有什么解决办法吗?
      【解决方案3】:

      引导程序 3.3.7:

      使用form-inline

      它只适用于大于 768px 的屏幕分辨率。要测试下面的 sn-p,请确保单击“扩展 sn-p”链接以获得更宽的查看区域。

              <link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"/>
              <form class="form-inline">
                  <input type="text" class="form-control"/>-<input type="text" class="form-control"/>
              </form>

      参考:https://getbootstrap.com/docs/3.3/css/#forms-inline

      【讨论】:

        【解决方案4】:

        @KyleMit 在 Bootstrap 4 上的回答有所改变

        <div class="input-group">
            <input type="text" class="form-control">
            <div class="input-group-prepend">
                <span class="input-group-text">-</span>
            </div>
            <input type="text" class="form-control">
        </div>
        

        【讨论】:

          【解决方案5】:

          @KyleMit 回答是解决这个问题的一种方法,但是我们可以选择避免 input-group 类实现的未分割输入字段。更好的方法是在父 div 上使用 form-grouprow 类,并将 input 元素与引导程序提供的网格系统类一起使用。

          <div class="form-group row">
              <input class="form-control col-md-6" type="text">
              <input class="form-control col-md-6" type="text">
          </div>
          

          【讨论】:

            【解决方案6】:

            对于引导程序 4

            <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
            
            <div class="input-group">
                <input type="text" class="form-control" placeholder="Start"/>
                <div class="input-group-prepend">
                    <span class="input-group-text" id="">-</span>
                </div>
                <input type="text" class="form-control" placeholder="End"/>
            </div>

            【讨论】:

              【解决方案7】:

              只需将两个输入放在一个具有form-group 类的 div 中,并在 div 样式上设置 display flex

              <form method="post">
              <div class="form-group" style="display: flex;"><input type="text" class="form-control" name="nome" placeholder="Nome e sobrenome" style="margin-right: 4px;" /><input type="text" class="form-control" style="margin-left: 4px;" name="cpf" placeholder="CPF" /></div>
              <div class="form-group" style="display: flex;"><input type="email" class="form-control" name="email" placeholder="Email" style="margin-right: 4px;" /><input type="tel" class="form-control" style="margin-left: 4px;" name="telephone" placeholder="Telefone" /></div>
              <div class="form-group"><input type="password" class="form-control" name="password" placeholder="Password" /></div>
              <div class="form-group"><input type="password" class="form-control" name="password-repeat" placeholder="Password (repeat)" /></div>
              <div class="form-group">
                  <div class="form-check"><label class="form-check-label"><input type="checkbox" class="form-check-input" />I agree to the license terms.</label></div>
              </div>
              <div class="form-group"><button class="btn btn-primary btn-block" type="submit">Sign Up</button></div><a class="already" href="#">You already have an account? Login here.</a></form>
              

              【讨论】:

                【解决方案8】:

                你检查过boostrap网站吗?搜索“表格”

                <div class="form-row">
                <div class="col">
                  <input type="text" class="form-control" placeholder="First name">
                </div>
                <div class="col">
                  <input type="text" class="form-control" placeholder="Last name">
                </div>
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-02-03
                  • 2016-09-12
                  • 1970-01-01
                  • 2018-05-05
                  • 2017-11-20
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多