我使用带有 twitter bootstrap 的 Ruby on Rails 4 来显示form_for
(twitter bs form_horizontal
)。当 rails 将元素包装在 div 中时,下面的样式可以正常工作(标签、输入和提示彼此相邻显示),field_with_errors
但提示被放到输入元素下方。
<div class="control-group required">
<div class="field_with_errors"><label class="control-label" for="lot_commonname_id">Common Name</label></div>
<div class="controls">
<div class="field_with_errors"><select id="lot_commonname_id" name="lot[commonname_id]"><option value="">Please select</option>
<option value="1">x</option>
<option value="2">y</option>
<option value="3">z</option>
</select>
</div>
<div class="hint">
<a href="#" rel="tooltip" data-original-title="xyz test.">
<i class="icon-info-sign"></i>
</a>
</div>
</div>
</div>
.field_with_errors {
@extend .control-group;
@extend .error;
}
.form-horizontal .field_with_errors
{
margin: 0;
}
.form-horizontal .field_with_errors:before, .form-horizontal .field_with_errors::after
{
display: block;
clear: none;
}
以下 jsfiddle http://jsfiddle.net/a78B5/6/演示了问题