7

我有一个包含 20 多个标签的列表,我想在 4 列复选框网格中显示,但我不太确定最干净的方法是什么。我有以下表格:

= simple_form_for(@fracture) do |f|
  = f.error_notification    
  .form-inputs
    = f.input :title
    = f.input :summary
    = f.input :tag_list, :as => :check_boxes, :collection => ActsAsTaggableOn::Tag.all.map(&:name), :item_wrapper_class => 'inline'

生成的表单应该类似于http://jsfiddle.net/LVFzK/,但我希望将逻辑限制在 awrapper或 CSS 中,而不是手动修改 HTML。

4

1 回答 1

4

如果您摆脱<div class="controls span2">列元素并将span2类添加到label元素中,label则将具有设定的宽度并将向左浮动。这将导致复选框与网格对齐。

<label class="checkbox span2">
    <input type="checkbox" value="option1"> Cash
</label>

span10您可以通过将类添加到容器元素来强制网格为四列:

<div class="control-group span10">

但是,这将导致网格向左 -> 向右流动,然后创建新行,而不是垂直堆叠连续的元素。我认为让元素垂直堆叠的唯一方法是使用多列布局功能。我以前没有使用过它,我实际上不知道它在各种浏览器中的效果如何。

这个jsFiddle展示了两种方法,每一种都具有静态宽度或流体宽度。

于 2012-12-11T06:36:01.937 回答