使用两列样式化表单

时间:2018-01-31 20:17:37

标签: html css forms flexbox bootstrap-4

我正在尝试重新创建此页面

Mock Page

我对bootstrap 4的网格系统非常熟悉,但我对表格非常挣扎。页面上的表单由两行col-6组成。我正在处理第一列,但我似乎无法使用flexbox类保持所有内联。有人能告诉我如何获得这种类似的格式吗?

<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
  
  <div class="container">
    <div class="d-flex flex-row">
			<div class="col-6 d-flex"><!--left side -->
				<form class="form-inline">
					<div class="form-group">
						<label for="fname">First Name:</label>
						<input type="text" id="fname" class="form-control ml-5">
					</div>
					<div class="form-group">
						<label for="lname">Last Name:</label>
						<input type="text" id="lname" class="form-control ml-5">
					</div>
					<div class="form-inline">
						<label for="month/year">Date of Birth:</label>
						<select name="Month" class="custom-select" class="month/year">
  							<option value="january">January</option>
  							<option value="february">February</option>
  							<option value="march">March</option>
  							<option value="april">April</option>
  							<option value="may">May</option>
  							<option value="june">June</option>
  							<option value="july">July</option>
  							<option value="august">August</option>
  							<option value="september">September</option>
  							<option value="october">October</option>
  							<option value="november">November</option>
  							<option value="december">December</option>
						</select>
						<!--dates in this select below -->
						<select name="Year" class="custom-select" class="month/year">
							<option value="2018">2018</option>
							<option value="2017">2017</option> 
						</select>
					</div>
					<div class="form-group mt-3">
						<label>Gender:</label>
						<div>
							<label class="radio-button-container ml-2">Male
								<input type="radio" name="radio">
								<span class="black-dot"></span>
							</label>
						</div>
						<div>
							<label class="radio-button-container ml-2">Female
								<input type="radio" name="radio">
								<span class="black-dot"></span>
							</label>
						</div>
					</div>
					<div class="form-group">
							<label for="month/year">Field of Study:</label>
							<select name="Month" class="custom-select" class="month/year">
	  							<option value=""></option>	
	  						</select>
					</div>
				</form>	
			</div>
			<div class="col-6"></div><!--right side -->
		</div><!-- form for teacher/student-->
   </div>

该片段将是第一列中左侧的“名字”开头。如果我能理解如何获得这种类型的对齐,那么我可以找出另一列。可以使用bootstrap类完成吗?

1 个答案:

答案 0 :(得分:1)

实际上这不是inline form,因此您不应该使用.form-inline上的<form>课程。此结构称为“水平”形式,它在Bootstrap文档的Horizontal form部分中进行了描述。基本上,您必须使用标准网格类来根据需要布置标签和输入字段 此外,让您的<form>标记包含左侧和右侧列,以仅创建一个表单。否则你将无法一次性提交。

下面的示例提供了一个示例实现,其中.col-sm-6类用于标签以及输入。

<div class="container">
    <form>
        <div class="row">
            <div class="col-6"><!--left side -->
                <div class="form-group row">
                    <label for="fname" class="col-sm-6 col-form-label">First Name:</label>
                    <div class="col-sm-6">
                        <input type="text" class="form-control" id="fname">
                    </div>
                </div>

                <div class="form-group row">
                    <label for="lname" class="col-sm-6 col-form-label">Last Name:</label>
                    <div class="col-sm-6">
                        <input type="text" class="form-control" id="lname">
                    </div>
                </div>

                <div class="form-group row">
                    <label for="lname" class="col-sm-6 col-form-label">Date of Birth:</label>
                    <div class="col-sm-6">
                        <div class="row">
                            <div class="col-sm-6">
                                <select name="Month" class="custom-select" class="month/year">
                                    <option value="january">January</option>
                                    <option value="february">February</option>
                                    <option value="march">March</option>
                                    <option value="april">April</option>
                                    <option value="may">May</option>
                                    <option value="june">June</option>
                                    <option value="july">July</option>
                                    <option value="august">August</option>
                                    <option value="september">September</option>
                                    <option value="october">October</option>
                                    <option value="november">November</option>
                                    <option value="december">December</option>
                                </select>
                            </div>

                            <div class="col-sm-6">
                                <select name="Year" class="custom-select" class="month/year">
                                    <option value="2018">2018</option>
                                    <option value="2017">2017</option> 
                                </select>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="form-group row">
                    <label for="lname" class="col-sm-6 col-form-label">Gender:</label>
                    <div class="col-sm-6">
                        <div class="row">
                            <div class="col-sm-6">
                                <div class="form-check">
                                    <input class="form-check-input" type="radio" name="gender" id="gridRadios1" value="male" checked>
                                    <label class="form-check-label" for="gridRadios1">
                                        Male
                                    </label>
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-check">
                                    <input class="form-check-input" type="radio" name="gender" id="gridRadios2" value="female">
                                    <label class="form-check-label" for="gridRadios2">
                                        Female
                                    </label>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="form-group row">
                    <label for="lname" class="col-sm-6 col-form-label">Field of Study:</label>
                    <div class="col-sm-6">
                        <select name="Month" class="custom-select" class="month/year">
                            <option value=""></option>  
                        </select>
                    </div>
                </div>
            </div>

            <div class="col-6">
                <div class="form-group row">
                    <label for="email" class="col-sm-6 col-form-label">Email Address</label>
                    <div class="col-sm-6">
                        <input type="text" class="form-control" id="email" value="email@example.com">
                    </div>
                </div>

                <div class="form-group row">
                    <label for="password" class="col-sm-6 col-form-label">Password</label>
                    <div class="col-sm-6">
                        <input type="password" class="form-control" id="password" value="">
                    </div>
                </div>

                <div class="form-group row">
                    <label for="password2" class="col-sm-6 col-form-label">Password</label>
                    <div class="col-sm-6">
                        <input type="password" class="form-control" id="password2" value="">
                    </div>
                </div>

            </div><!--right side -->
        </div><!-- form for teacher/student-->
    </form> 
</div>


<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>