当我了解更多关于bootstrap的信息时,我取得了很好的进展,但我再一次面临着一个基本的挑战.这是关于内联形式.
请参阅附件截图.如你所见,我有两个问题.第一个易于识别的是,在“体验”部分 – 这是嵌套在表单组中的内联表单,问题是重叠字段.理想情况下,它们应该彼此相邻,它们之间有10px的缓冲区.本节的代码如下
- <div class="form-group row-top-buffer">
- <label for="experience" class="col-md-3 control-label">Experience</label>
- <div class="col-md-9 form-inline" role="form">
- <div class="form-group col-md-3">
- <label class="sr-only" for="jobMinExperience">Min Experience</label>
- <input type="text" class="form-control" id="jobMinExperience" placeholder="0" />
- </div>
- <div class="form-group col-md-3">
- <label class="sr-only" for="jobMaxExperience">Max Experience</label>
- <input type="text" class="form-control" id="jobMaxExperience" placeholder="0" />
- </div>
- <div class="form-group col-md-3">
- <label class="sr-only" for="jobExperienceDropDown">Experience</label>
- <div class="dropdown">
- <button class="btn btn-default dropdown-toggle" type="button" id="jobExperienceDropDown" data-toggle="dropdown">
- Dropdown
- <span class="caret"></span>
- </button>
- <ul class="dropdown-menu" role="menu" aria-labelledby="jobExperienceDropDown">
- <li role="presentation">
- <a role="menuitem" tabindex="-1" href="#">years</a>
- </li>
- <li role="presentation">
- <a role="menuitem" tabindex="-1" href="#">months</a>
- </li>
- </ul>
- </div>
- </div>
- </div>
- </div>
第二个问题不明显,就是“位置”行中的问题.我有两排组件.第一个是简单的全角文本输入.然而,第二行是包括多个组件的内联形式.在这里,我希望最后一个文本框,对于邮政编码,可以延伸到第一行结束 – 但它会突然停止.下面提供了此部分的代码
- <div class="form-group row-top-buffer">
- <label for="jobLocation" class="col-md-3 control-label">Location</label>
- <div class="col-md-9">
- <input type="text" class="form-control" id="jobStreet" name="jobStreet" placeholder="Street" />
- <div class="form-inline" role="form" style="padding-top: 9px;">
- <div class="form-group col-md-5">
- <label class="sr-only" for="jobCity">City</label>
- <input type="text" class="form-control" id="jobCity" name="jobCity" placeholder="City" />
- </div>
- <div class="form-group col-md-2 margin-0">
- <label class="sr-only" for="jobState">State</label>
- <?
- include_once 'stateDropDown.PHP';
- ?>
- </div>
- <div class="form-group col-md-3 margin-0">
- <label class="sr-only" for="jobZip">City</label>
- <input type="text" class="form-control" id="jobZip" name="jobZip" placeholder="00000" />
- </div>
- </div>
- </div>
- </div>
解决方法
表单布局与表单本身上的类有很大关系,例如form-horizontal,这是屏幕截图所反映的表单类型.但是,你的html混合了内联表单类,并在表单组中组合了col类,就像在行中添加列类一样 – 没有完成.无论如何,这不是你确切的形式,但它足以评论,一旦你学到它就能得到你想要的东西.我为此选择了你的下拉菜单,但除非你使用一些插件来选择下拉(有一个),你可以在表单中使用选择菜单.
演示:http://jsbin.com/fecib/2/edit
- <form class="form-horizontal my-form" role="form">
- <div class="form-group">
- <label class="col-sm-3 control-label">Location</label>
- <div class="col-sm-9">
- <input type="text" class="form-control" placeholder="location">
- </div><!-- /col-sm-9 -->
- </div><!-- /form-group -->
- <div class="form-group">
- <div class="col-sm-offset-3 col-sm-9">
- <div class="form-group"> <!-- nested form-group acting like row -->
- <div class="col-sm-6">
- <input type="text" class="form-control" placeholder="City">
- </div><!-- /col-sm-6 -->
- <div class="col-sm-4">
- <input type="text" class="form-control" placeholder="State">
- </div><!-- /col-sm-4 -->
- <div class="col-sm-2">
- <input type="text" class="form-control" placeholder="Zip">
- </div><!-- /col-sm-2 -->
- </div> <!-- /nested form-group acting like row -->
- </div><!-- /col-sm-offset-3 col-sm-9 -->
- </div><!-- /form-group -->
- <div class="form-group">
- <label for="location" class="col-sm-3 control-label">Priority</label>
- <div class="col-sm-9">
- <div class="dropdown">
- <button class="btn btn-default dropdown-toggle" type="button" id="jobExperienceDropDown" data-toggle="dropdown"> Dropdown <span class="caret"></span> </button>
- <ul class="dropdown-menu" role="menu" aria-labelledby="jobExperienceDropDown">
- <li role="presentation"> <a role="menuitem" tabindex="-1" href="#">years</a> </li>
- <li role="presentation"> <a role="menuitem" tabindex="-1" href="#">months</a> </li>
- </ul>
- </div><!-- /dropdown -->
- </div><!-- /col-sm-9-->
- </div><!-- /form-group -->
- <div class="form-group">
- <label class="col-sm-3 control-label">Experience</label>
- <div class="col-sm-9">
- <div class="form-group"><!-- nested form-group acting like row -->
- <div class="col-sm-4">
- <input type="text" class="form-control" placeholder="0">
- </div><!-- /.col-sm-4 -->
- <div class="col-sm-4">
- <input type="text" class="form-control" placeholder="0">
- </div><!-- /.col-sm-4 -->
- <div class="col-sm-4">
- <div class="dropdown">
- <button class="btn btn-default dropdown-toggle" type="button" id="jobExperienceDropDown" data-toggle="dropdown"> Dropdown <span class="caret"></span> </button>
- <ul class="dropdown-menu" role="menu" aria-labelledby="jobExperienceDropDown">
- <li role="presentation"> <a role="menuitem" tabindex="-1" href="#">years</a> </li>
- <li role="presentation"> <a role="menuitem" tabindex="-1" href="#">months</a> </li>
- </ul>
- </div><!-- /dropdown -->
- </div><!-- /.col-sm-4 -->
- </div><!-- /nested form-group acting like row -->
- </div><!-- /.col-sm-9 -->
- </div><!-- /.form-group -->
- <div class="form-group">
- <div class="col-sm-offset-3 col-sm-9">
- <button type="submit" class="btn btn-default">Sign in</button>
- </div>
- </div>
- </form>
CSS:
- /* ----------- adjusted nested columns grid ----------- */
- .my-form .form-group [class*="col-"] .form-group [class*="col-"] {
- padding-left: .5%;
- padding-right: .5%;
- }
- .my-form .form-group [class*="col-"] .form-group {
- margin-left: -.5%;
- margin-right: -.5%;
- }
- .my-form .form-group [class*="col-"] .form-group [class*="col-"]:not(:last-child) {
- margin-bottom: 10px
- }
- @media (min-width:768px) {
- .my-form .form-group [class*="col-"] .form-group [class*="col-"]:not(:last-child) {
- margin-bottom: 0
- }
- }
- .my-form .form-group [class*="col-"] .form-group {
- margin-bottom: 0
- }