多字段与表格集
对不起,模糊的标题,我不知道如何更好地描述它。 我目前正在升级一个网站引导3,并得到一个表格行多input一个小问题。
在bootstrap 2中,我只是简单地创build了两个.spanX
.controls.controls-row
,里面有.spanX
元素来创build必要的列。 但是,由于这些在引导3中被删除,我用.form-group
和新的列类replace了它们。
如果我在表单中有两行(在这个例子中为fieldset),那么如果第二行是一列的行(见下面的代码和附加屏幕截图),那么第一行就变成不可编辑的。
我用萤火虫检查了元素,发现第二个字段集的.col-sm-12
放在.form-group
,不让用户点击里面的元素。 在第一个.col-sm-12
,一切正常。
我也尝试在每个解决问题的.form-group
放置一个.row
,但是增加了表单行的宽度,所以它在fieldset中不再有左边距。
有没有办法解决这个问题,而不增加表格行宽?
提前致谢!
编辑:我添加生成的代码作为一个jsFiddle
%fieldset %legend= t('.login_information') .form-group .col-sm-12 = f.label :login = f.text_field :login, :class => 'form-control', :required => true .form-group .col-sm-6 = f.label :password = f.password_field :password, :class => 'form-control' .col-sm-6 = f.label :password_confirmation = f.password_field :password_confirmation, :class => 'form-control' %fieldset %legend= t('.personal_details') .form-group .col-sm-4 = f.label :title = f.text_field :title, :class => 'form-control' .col-sm-4 = f.label :firstname = f.text_field :firstname, :class => 'form-control', :required => true .col-sm-4 = f.label :lastname = f.text_field :lastname, :class => 'form-control', :required => true .form-group .col-sm-12 = f.label :email = f.text_field :email, :class => 'form-control email', :required => true
在布局中需要调整几件事情:
-
您在
form-group
元素中嵌套col
元素。 这应该是相反的方式(form-group
应该在col-sm-xx
元素内)。 -
你应该总是在你的devise中为每一个新的“行”使用一个
row
div。 在你的情况下,你将需要至less5行(用户名,密码和合作,标题/名字,电子邮件,语言)。 否则,有问题的.col-sm-12
与上述.col-sm-4
仍然在同一行上,导致总共大于12的列,并导致重叠问题。
这是一个固定的演示 。
以及有问题的部分HTML应该成为什么的摘录:
<fieldset> <legend>Personal Information</legend> <div class='row'> <div class='col-sm-4'> <div class='form-group'> <label for="user_title">Title</label> <input class="form-control" id="user_title" name="user[title]" size="30" type="text" /> </div> </div> <div class='col-sm-4'> <div class='form-group'> <label for="user_firstname">First name</label> <input class="form-control" id="user_firstname" name="user[firstname]" required="true" size="30" type="text" /> </div> </div> <div class='col-sm-4'> <div class='form-group'> <label for="user_lastname">Last name</label> <input class="form-control" id="user_lastname" name="user[lastname]" required="true" size="30" type="text" /> </div> </div> </div> <div class='row'> <div class='col-sm-12'> <div class='form-group'> <label for="user_email">Email</label> <input class="form-control required email" id="user_email" name="user[email]" required="true" size="30" type="text" /> </div> </div> </div> </fieldset>
我不同意.form-group应该在.col – * – n元素之内。 根据我的经验,所有适当的填充都会在表单中像.row一样使用.form-group时自动发生。
<div class="form-group"> <div class="col-sm-12"> <label for="user_login">Username</label> <input class="form-control" id="user_login" name="user[login]" required="true" size="30" type="text" /> </div> </div>
看看这个演示 。
通过向表单标签添加.form-horizontal稍微改变演示可以改变一些填充。
<form action="#" method="post" class="form-horizontal">
看看这个演示 。
如果有疑问,请在Chrome中检查或在Firefox中使用Firebug来查找填充和边距等内容。 在表单中使用.row失败了edsioufi的小提琴,因为.row使用负的左边界和右边界,从而绘制分类的水平边界超越了包含的字段集的边界。