Amm*_*mar 2 css validation ruby-on-rails-3.1
我正在使用Rails辅助方法来构建表单,并使用验证.
只要其中一个验证失败,rails就会在field_with_errors标记中包含相应的输入和标签.哪个好.
但是,由于某些原因,rails将输入和标签包装在不同的div中,使得样式非常难:
例如:
<div class="field">
<div class="field_with_errors">...label...</div>
<div class="field_with_errors">..input ...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
而我需要的是:
<div class="field">
<div class="field_with_errors">...label & input...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
有谁知道我会怎么做到这一点?
一种方法是用跨度替换div,这不会破坏格式,因为它们不是块级元素.为此,请将其放在初始化程序中:
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
"<span class=\"field_with_errors\">#{html_tag}</span>".html_safe
end
Run Code Online (Sandbox Code Playgroud)
另一种方法是简单地使原始div不显示为块级元素,在CSS文件中使用以下行:
.field_with_errors { display: inline-block; }
Run Code Online (Sandbox Code Playgroud)
但是一些旧的浏览器并没有完全支持这一点(看着你的IE6和7).