我正在使用带引导程序的simple_form,而且我主要使用水平布局。
我偶尔会在主水平列的字段右侧添加其他字段,但是在定位它们时遇到了问题。当然我可以停止使用:class => 'form-horizontal'并自己定位,但我想知道是否有人知道在simple_form字段右侧添加字段的简单方法。
我尝试使用bootstrap定位,但它打破了simple_form水平布局。
例如,请参阅下面的代码。我希望应用按钮立即位于输入字段的右侧。我还有其他用例,我想在右边放置第二个字段。
我使用了 pull-right 属性,但它在页面右侧显示。我希望按钮位于输入字段的右侧,有一些间距。有没有一种简单的方法可以不编写我自己的CSS?
<%= link_to 'Apply', apply_primer3_defaults_path, :class => 'btn btn-primary pull-right', :remote => true, :id => 'apply_btn' %>
<%= f.input :primer3_default, :collection => Primer3Setting.pluck(:description), include_blank: false,:title => 'Primer 3 Default' %>
我添加了一个截图来帮助说明问题。我希望在 Primer 3 Std Defaults 下拉菜单后点击应用按钮。我还会在状态下拉列表的右侧添加一个字段。
修改
根据 kikicarbonel 答案添加更改(在erb中)。它有点工作,但非常冗长。
<%= simple_form_for(@batch, :html => { :class => 'form-horizontal'}) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<div class="row">
<div class="span12">
<%= f.input :name, input_html: { value: User.find(@batch.user_id).name }, :disabled => true %>
</div>
<div class="span12">
<%= f.input :status, :collection => Batch::STATUS_OPTIONS %>
</div>
<div class="span12">
<%= f.input :description %>
</div>
<div class="span4">
<%= f.input :primer3_default, :collection => Primer3Setting.pluck(:description), include_blank: false,:title => 'Primer 3 Default' %>
</div>
<div class="span4 offset2">
<%= link_to 'Apply', apply_primer3_defaults_path, :class => 'btn btn-primary', :remote => true, :id => 'apply_btn' %>
</div>
</div class="span12">
<%= f.input :details, :input_html => { :class => "span6", :rows => 5 } %>
</div>
</div>
</div>
截图如下。当我使用 offset1 时,字段会触及。看起来我不得不制作一些自定义css来做我需要的东西,而不需要那些标记。
答案 0 :(得分:2)
要使用simple_form whit bootstrap css而不实现你的自定义css,你可以使用这样的代码(我更喜欢使用haml,但在erb中的工作方式类似):
= simple_form_for(@example) do |f|
= f.error_notification
.form-inputs
.row
.span4
= f.input :title
.span4.offset2
= f.input :version
结果:
标题:bla ... bla ... bla版本:xxx