2017-06-12 75 views
1

在下面的代码中,我有2个按钮和3个标签的输入。我希望按钮与输入对齐,但它们与标签对齐。我尝试了内联表单,但是在侧面贴上标签不会。不能对齐水平形式的按钮(非内联)(引导)

什么是最好的选择来完成这个没有太多的破坏bootstrap?

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

 
<form role="form"> 
 
    <div class="row"> 
 
    <div class="form-group col-xs-1"> 
 
     <button type="button" class="btn btn-success btn-add">+</button> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-2"> 
 
     <button type="submit" class="btn btn-default">Filter</button> 
 
    </div> 
 
</form>

+0

您可以更改这两个按钮的顶部属性,并使它们与输入元素对齐。但是,这又取决于你的标签会有多大 – karthick

+0

如果你的标签总是很短。那么你可以使用顶部上的btns – karthick

回答

0

由于您使用的引导,你可能不希望自定义CSS太多,除非你真的知道你在做什么。

因此,尝试使用相同的结构,然后您将得到相同的结果,将<label>&nbsp;</label>添加到这些按钮作为占位符,因此它们的行为与屏幕更改相同。

同时添加form-control到提交按钮,让自举处理它:d

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

 
<form role="form"> 
 
    <div class="row"> 
 
    <div class="form-group col-xs-1"> 
 
     <label>&nbsp;</label> 
 
     <button type="button" class="btn btn-success btn-add">+</button> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-2"> 
 
     <label>&nbsp;</label> 
 
     <button type="button" class="btn btn-default form-control">Filter</button> 
 
    </div> 
 
    </div> 
 
</form>

+0

好吧,这是一个聪明的方法来解决它haha – Panque

+0

@Panque高度/边距由bootstrap控制,除非您将相同的样式添加到这些按钮。遵循它的最佳方式是使用相同的结构和样式 –

+0

对+按钮有一些问题,但通过向其添加窗体控件来解决此问题。谢谢,我真的很喜欢这个解决方案。 – Panque

0

应用display:inline-blocklabelinput应该让他们流动到同一行,但可能仅仅需要display:inline

+0

好吧!只是追查了这个问题。首先,你错过了'row' div的结束标记。其次,'form-control'类将'display:block'应用于不需要的输入。删除'form-control'并应用'display:inline-block'后,一切都按预期工作 – marcx

+0

对不起,我是一个begginer,我应该在哪里应用display:inline-block? – Panque

+0

你会想在你的CSS样式中做到这一点!就像这样:'label {display:inline-block;}'和'input {display:inline-block;}',你可以把它们放在页面顶部的''之间,包括bootstrap的css – marcx

0

最快(而不是有点脏)方法可以让我觉得这样做是为了适应与Bootstrap将引入占位符标签,然后隐藏它们。但是请注意,这是很脆弱的,因为它代表 - 如果布局允许过于压缩宽度方向(或者,如果标签文本被允许换行),仍然会出现错位:

.invisible-label { 
 
    visibility: hidden; 
 
    display: block; 
 
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" /> 
 

 
<form role="form"> 
 
    <div class="row"> 
 
    <div class="form-group col-xs-1"> 
 
     <label class="invisible-label">&nbsp;</label> 
 
     <button type="button" class="btn btn-success btn-add">+</button> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-3"> 
 
     <label>Text Input</label> 
 
     <input class="form-control"> 
 
     <p class="help-block">Example block-level help text here.</p> 
 
    </div> 
 
    <div class="form-group col-xs-2"> 
 
     <label class="invisible-label">&nbsp;</label> 
 
     <button type="submit" class="btn btn-default">Filter</button> 
 
    </div> 
 
    </div> 
 
</form>