0

simple_form 2.1.2这是一个在 Bootstrap 3 和 Rails 3.2 上通过 3 个未对齐的行呈现的 HTML 页面。

在此处输入图像描述

我们知道 Bootstrap 3simple_form 2.1和 Rails 3.2 不兼容。所有行的 HTML 源代码具有相同的结构(当然名称不同)。我们还发现,不同版本的 Firefox(新版本可能只有 2 个未对齐行)和浏览器类型(IE 10.0 可能有 5 个未对齐行)不同,错位行数也不同。此外,通过添加<div></div><%=f.input ..%>对齐的行,simple_form html.erb可以将一行拖回内联并将未对齐的行减少 1。

导致错位的原因是什么?我们有办法解决它吗?

这是 simple_form.css.scss:

.simple_form div.input {
  margin-bottom: 10px;
}

.simple_form label {
  float: left;
  width: 140px;
  text-align: right;
  margin: 2px 10px;
}

.simple_form input.readonly {
  background: transparent; 
  border: 0;
}

div.boolean, .simple_form input[type='submit'] {
  margin-left: 120px;
}

div.boolean label, label.collection_radio {
  float: none;
  margin: 0;
}

label.collection_radio {
  margin-right: 10px;
  vertical-align: -2px;
  margin-left:   2px;
}

.field_with_errors {
  background-color: #ff3333;
}

.simple_form .error {
  clear:   left;
  color:   black;
  display: block;
  margin-left: 120px;
  font-size:    12px;
}

.simple_form .hint {
  clear: left;
  margin-left: 120px;
  font-size:    10px;
  color: #555;
  display: block;
  font-style: italic;
}

input.radio {
  margin-right: 5px;
  vertical-align: -3px;
}

input.check_boxes {
  margin-left: 3px;
  vertical-align: -3px;
}

label.collection_check_boxes {
  float: none;
  margin: 0;
  vertical-align: -2px;
  margin-left:   2px;
}

这是html.erb:

<%= simple_form_for @part do |f| %>  
      <%= f.input :name, :label => t('Part Name') %>  
      <%= f.input :part_num, :label => t('Part#') %>
      <%= f.input :spec, :label => t('Spec'), :input_html => {:rows => 3} %>
      <%= f.input :unit, :label => t('Unit'), :collection => @qty_unit, :include_blank => true %>
      <%= f.input :category_id, :label => t('Part Category'), :collection => TwoTierDefinitionx::Definition.where('active = ? AND for_which = ?', true, 'material_category').order('ranking_index'), :include_blank => true %>
      <%= f.input :sub_category_id, :label => t('Part Sub Category'), :collection => TwoTierDefinitionx::SubDefinition.where(active: true).order('ranking_index'), :include_blank => true %>
      <%= f.input :preferred_supplier, :label => t('Preferred Supplier'), :input_html => {:rows => 2} %>
      <%= f.input :preferred_mfr, :label => t('Preferred Mfr') , :input_html => {:rows => 2} %>
      
      <%= link_to t('Back'), SUBURI + "/authentify/view_handler?index=0", :class => BUTTONS_CLS['action'] %>
      <%= f.button :submit, t('Save'), :class => BUTTONS_CLS['action'] %>  
<% end %>
4

1 回答 1

1

这只是你需要去css并使用float或align或margin将这些表单元素定位在你想要它们的位置的css

于 2015-02-09T05:27:28.160 回答