- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从可访问性的角度来看,对单选按钮和复选框使用 fieldset/legend
组合非常重要:
fieldset
legend What is your sex?
label for="male" Male
input type="radio" id="male"
label for="female" Female
input type="radio" id="female"
当已经在 fieldset/legend
对中时,这甚至是正确的,如下所示:
fieldset
legend Personal information
label for="name"
input type="text" id="name"
fieldset // Yes, this is a fieldset inside a fieldset!
legend What is your sex?
label for="male" Male
input type="radio" id="male"
label for="female" Female
input type="radio" id="female"
label for="email"
input type="text" id="email"
不过,Simple_Form 会自动为这些图例生成 label
元素。有没有简单的方法告诉 Simple_Form 创建 fieldset/legend
,或者我必须使用自定义包装器来解决这个问题?
更新
首先,我创建了一个自定义包装器,如下所示:
config.wrappers :vertical_radio_and_checkboxes, tag: 'fieldset', class: 'form-group', error_class: 'has-error' do |b|
b.use :html5
b.optional :readonly
b.wrapper tag: 'legend', class: 'col-sm-3 control-label' do |ba|
ba.use :label # TODO: Doesn't need to be a label tag, see http://stackoverflow.com/questions/29261556/simple-form-use-fieldset-legend-for-radio-buttons-checkboxes
end
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
ba.use :input
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
end
end
这暂时没问题,虽然我没有找到告诉 Simple_Form 不要为标签生成 label
元素的方法(它不指向任何 ID,这意味着它无论如何都不是正确的用法,但它添加了一些重要的 CSS 类,所以我不想放弃它并使用 label_text
)。
我已将问题添加到 Simple_Form-Bootstrap 存储库:fieldset/legend should be used for multiple checkboxes/radiobuttons .
最佳答案
防止simple_form生成<label>
你可以使用 :label => false
例如在你的_form.haml
:
= f.input :name, :label => false
在你的表单中。
这就是你想要的吗?不确定这就是您的问题的全部原因。
以防万一,可能会有一些有用的信息here
关于ruby-on-rails - 简单形式 : Use fieldset/legend for radio buttons/checkboxes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29261556/
我遇到过这个 html: 上面的html和这个有什么区别: 最佳答案 来自MDN page on the tag : 对于 type 的属性标签,可能的值是: 提交:按钮将表单数据提交给服务器
Button button= (Button) findViewbyID(R.id.button); 和 Button button = new Button(this); 有什么区别? 最佳答案 有
我是一名优秀的程序员,十分优秀!