使用twitter bootstrap将表单分成两列

时间:2013-10-28 14:46:44

标签: html css twitter-bootstrap-3

在以下情况中,使用bootstrap设置form样式的正确方法是什么:

two columns form view

  1. 我需要使用fieldset(将在以后设置样式)

  2. 我需要将form划分为两列

  3. 每列都有标签+控件,有些会有标签+ control1 + control2等。

  4. 我是bootstrap的新手。我来到了以下solution (jsfiddle)

    问题是:这是正确的方法吗?它是否违反了引导语义?

    我不明白何时使用form-group ,我是否正确使用它?

    我是否应该在此处包含某些class="row"以获取正确的语义

    HTML:

    <div class="container">
    ... <some content here> ....
    
    <form class="form-horizontal">
        <fieldset>
            <legend>Portfolio</legend>
            <div class="col-xs-6">
                <div class="form-group">
                    <label for="name" class="col-xs-4 control-label">Label1</label>
                    <div class="col-xs-8">
                        <input type="text" class="form-control" placeholder="control1" />
                    </div>
                </div>
                <div class="form-group">
                    <label for="name" class="col-xs-4 control-label">label2</label>
                    <div class="col-xs-8">
                        <input type="text" class="form-control" placeholder="control2" />
                    </div>
                </div>
                <div class="form-group">
                    <label for="name" class="col-xs-4 control-label">label3</label>
                    <div class="col-xs-8 form-inline">
                        <div class="form-group col-xs-6">
                            <input type="text" class="form-control" placeholder="control1" />
                        </div>
                        <div class="form-group col-xs-6">
                            <input type="text" class="form-control" placeholder="control2" />
                        </div>
                    </div>
                </div>
            </div>
            <div class="col-xs-6">
                <div class="form-group">
                    <label for="name" class="col-xs-4 control-label">Label1</label>
                    <div class="col-xs-8">
                        <input type="text" class="form-control" placeholder="control1" />
                    </div>
                </div>
                <div class="form-group">
                    <label for="name" class="col-xs-4 control-label">label2</label>
                    <div class="col-xs-8">
                        <input type="text" class="form-control" placeholder="control2" />
                    </div>
                </div>
            </div>
        </fieldset>
    </form>
    </div>
    

    我已经看过所有Bootstrap表单示例,但我不知道如何将form分成两列。我还阅读了整个documentation,但我觉得这不是使用col和其他类的正确方法。

2 个答案:

答案 0 :(得分:6)

container元素内发生列分离 每当你有一个想要在其中做网格的元素时,给它class="container",在其中你可以使用普通的rowcolumn类。

还要检查Bootstrap开箱即用的表单样式。

以下是裸骨,添加你需要的东西(如文本对齐等)

<form class="container">
    <div class="row">
        <div class="col-md-3">
            <label for="username" class="control-label">label</label>
        </div>

        <div class="col-md-3">
            <input type="text" name="username" class="form-control" placeholder="Email address" autofocus>
        </div>

        <div class="col-md-3">
            <label for="username" class="control-label">label</label>
        </div>

        <div class="col-md-3">
            <input type="text" name="username" class="form-control" placeholder="Email address" autofocus>
        </div>

    </div>
</form>

答案 1 :(得分:0)

我在使用 bootstrap 4 时遇到了这个问题,我发现每当我们想要将表单内部分成许多列时,我们应该使用容器和行类。因为引导网格从其父级(.container 和 .row)获取其样式

看这个例子:

  <main>
    <div class="container-fluid mt-3">
        <div class="row">
            <form  method="post">
                <div class="container-fluid">
                    <div class="row">
                     <div class="col-md-6"> 
                       <div class="input-group">
                          <div class="col-md-3">
                            <label class="form-controllabel">Full Name</label>
                          </div>
                          <div class="col-md-9">
                            <input type="text" />
                            </div>
                         </div>

                    <div class="input-group">
                          <div class="col-md-3">
                            <label class="form-controllabel">fatherName</label>
                          </div>
                          <div class="col-md-9">
                            <input type="text" />
                            </div>
                    </div>
                   <div class="input-group">
                          <div class="col-md-3">
                            <label class="form-controllabel">LastName</label>
                          </div>
                          <div class="col-md-9">
                            <input type="text" />
                            </div>
                     </div>
                            

         <div class="col-md-6">
                           
                <div class="input-group">
                          <div class="col-md-3">
                            <label class="form-controllabel">salary</label>
                          </div>
                          <div class="col-md-9">
                            <input type="text" />
                            </div>
               </div>

              <div class="input-group">
                          <div class="col-md-3">
                            <label class="form-controllabel">tax</label>
                          </div>
                          <div class="col-md-9">
                            <input type="text" />
                            </div>
               </div>
                 
                <button type="submit">save</button>   
                                    
        </div>

                            
                    </div>
                </div>
            </form>
        </div>
    </div>
</main>

我相信它会起作用!