0

我使用带有 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/演示了问题

4

1 回答 1

0

Divs 默认为 display:block,因此它自然会下拉到您的输入下方。添加样式以使用 display:inline 或 display:inline-block ,它将移回文本框旁边。

于 2013-09-17T16:45:17.293 回答