2012-12-10 37 views
7

Tôi có danh sách 20 thẻ trở lên Tôi muốn hiển thị trong ô kiểm tra 4 cột nhưng tôi không chắc chắn cách tốt nhất để làm điều đó là gì. Tôi có dạng sau:Lưới kiểm tra biểu mẫu khởi động + đơn giản

= 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' 

Dạng kết quả nên được một cái gì đó giống như http://jsfiddle.net/LVFzK/ này, nhưng tôi muốn có logic chỉ giới hạn trong một CSS wrapper hay chứ không phải bằng tay điều chỉnh HTML.

+0

bạn đã tìm thấy giải pháp cho điều này chưa? Cảm ơn! – noob

Trả lời

4

Nếu bạn thoát khỏi các yếu tố <div class="controls span2"> cột và thêm lớp span2 đến label yếu tố, các label sẽ có chiều rộng thiết lập và sẽ float trái. Điều này sẽ làm cho các hộp kiểm tra căn chỉnh với lưới.

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

Bạn có thể buộc các mạng lưới để có bốn-cột bằng cách thêm các lớp span10 đến yếu tố container:

<div class="control-group span10"> 

Tuy nhiên, điều này sẽ gây ra các lưới chảy trái -> phải và sau đó tạo các hàng mới thay vì các phần tử liên tiếp được xếp chồng lên nhau theo chiều dọc. Cách duy nhất tôi có thể nghĩ là có các phần tử được xếp chồng lên nhau theo chiều dọc là sử dụng multi-column layout functionality. Tôi đã không sử dụng điều này trước đây, và tôi không thực sự biết nó hoạt động tốt như thế nào trong các trình duyệt khác nhau.

Điều này jsFiddle hiển thị hai phương pháp tiếp cận, mỗi phương pháp có chiều rộng tĩnh hoặc chiều rộng chất lỏng.

+1

Cảm ơn phản hồi của bạn - đây chắc chắn là giao diện tôi sẽ làm. Tuy nhiên, tôi đang tìm một giải pháp sử dụng trình bao bọc simple_form thay vì thêm nhiều HTML hơn vào mẫu phía máy chủ. – sguha

+0

Không sao cả. Bằng cách "sử dụng trình bao bọc simple_form", bạn có muốn tránh thêm lớp 'span2' vào các phần tử'

'. – tiffon

+0

Đó là một giải pháp rất sạch sẽ, nhưng tôi đang tìm một cái gì đó mà sẽ có haml này '= f.input: tag_list,: as =>: check_boxes,: collection => ActsAsTaggableOn :: Tag.all.map (&: name),: item_wrapper_class => 'inline'' và, sử dụng một số loại [Custom Wrapper] (https://github.com/plataformatec/simple_form/wiki/Custom-Wrappers) thêm các lớp đánh dấu/css thích hợp sẽ hiển thị các hộp kiểm trong lưới. – sguha

Các vấn đề liên quan