是否有可能将复选框和单选按钮组合在一个无序列表中?
如果没有,我如何垂直显示它们?
我知道这与布局有关,但仍然是编程问题。
答案 0 :(得分:2)
作为一个继续生活的快速入侵,将其添加到应用程序助手的底部可以简单地将每个标签/输入对包装在div中:
module SimpleForm::ActionViewExtensions::Builder
def collection_radio(attribute, collection, value_method, text_method, options={}, html_options={})
collection.map do |item|
value = item.send value_method
text = item.send text_method
default_html_options = default_html_options_for_collection(item, value, options, html_options)
@template.content_tag(:div, radio_button(attribute, value, default_html_options) <<
label("#{attribute}_#{value}", text, :class => "collection_radio"))
end.join.html_safe
end
def collection_check_boxes(attribute, collection, value_method, text_method, options={}, html_options={})
collection.map do |item|
value = item.send value_method
text = item.send text_method
default_html_options = default_html_options_for_collection(item, value, options, html_options)
default_html_options[:multiple] = true
@template.content_tag(:div,
check_box(attribute, default_html_options, value, '') <<
label("#{attribute}_#{value}", text, :class => "collection_check_boxes"))
end.join.html_safe
end
end
答案 1 :(得分:2)
这是更干净,更好的方式重新定义输入,如下所示:
创建新目录'app / inputs',
在其中创建文件'collection_radio_buttons_input.rb',粘贴以下
class CollectionRadioButtonsInput < SimpleForm::Inputs::CollectionRadioButtonsInput
def item_wrapper_class
"radiobox"
end
def build_nested_boolean_style_item_tag(collection_builder)
collection_builder.radio_button + template.content_tag(:span,collection_builder.text)
end
end
启用config / initializers / simple_form.rb中的'config.inputs_discovery'选项
瞧!
现在,将使用此控件代替默认的RadioButtons simple_form控件,您可以自由使用任何格式。
答案 2 :(得分:0)
我刚用CSS做过。我在按钮和标签周围打了一个div =“radio-buttons”的div。然后我把它添加到我的样式表(SASS):
.radio-buttons {
margin: .5em 0;
span input {
float: left;
margin-right: .25em;
margin-top: -.25em;
}
#this grabs the MAIN label only for my radio buttons
#since the data type for the table column is string--yours may be different
label.string {
margin-bottom: .5em !important;
}
clear: both;
}
.form-block {
clear: both;
margin-top: .5em;
}
.radio-buttons span {
clear: both;
display:block;
}
这将使所有框架上的单选按钮内联,但这被调整为Zurb Foundation的最佳选择。 ;)