【问题标题】:Rails Bootstrap how to format form_for (width grid collapses)Rails Bootstrap 如何格式化 form_for(宽度网格折叠)
【发布时间】:2014-03-09 17:58:06
【问题描述】:

我正在尝试使用 bootstrap-sass 制作表单。我需要找到引导类的最佳配置以使其看起来不错。它没有按我预期的方式显示,特别是当浏览器宽度小于某个大小时,标签和表单字段之间的空间会塌陷并且看起来不再好。如果它只发生在小宽度上就可以了,但事实并非如此。 我真的很感谢一些帮助, 真的,用引导程序格式化form-horizontal 的最佳方法是什么?

这是我的代码:

<form class="form-horizontal center" role="form">
<%= form_for @user do |f| %>
  <div class="field">
    <%= f.label :fname, "First name:", class: "col-md-4 control-label" %>
    <%= f.text_field :fname %>
  </div>
  <div class="field">
    <%= f.label :lname, "Last name:", class: "col-md-4 control-label" %>
    <%= f.text_field :lname %>
  </div>
  <div class="field">
    <%= f.label :email, "Email:", class: "col-md-4 control-label" %>
    <%= f.text_field :email %>
  </div>
  <!--div class="form-group" -->
  <div class="field">
    <%= f.label :comments, "Comments:", class: "col-md-4 control-label" %>
    <%= f.text_field :comments %>
  </div>
  <div class="field">
    <%= f.radio_button :attend, 'yes', :checked => true, class: "col-md-4 control-label" %>
    <%= f.label :attend, 'I will attend.', :value => "yes" %><br />
    <%= f.radio_button :attend, 'no', :checked => false, class: "col-md-4 control-label" %>
    <%= f.label :attend, "I will not attend.", :value => "no" %>
  </div>
  <div class="field">
    <%= f.check_box :workshop, class: "col-md-4 control-label" %>
    <%= f.label :workshop, "Checkbox Description" %>
  </div>
  <div class="field">
    <div class="col-md-4">
    <%= f.submit "Submit", class: "btn btn-default btn-primary" %>
    </div>
  </div>
<% end %>
</form>

从注释掉的代码可以看出,我首先使用了form-group 类,但效果不佳。 同样,问题是当浏览器的宽度小于特定大小时,标签和文本字段之间的空间会塌陷。右对齐的标签会失去对齐。浏览器必须几乎全屏才能正确显示,这是不对的,因为它有足够的空间在较小的宽度上正确显示。 我正在关注本指南http://getbootstrap.com/css/#grid

编辑:在代码中添加电子邮件字段,因为它的大小不同,更容易看到问题。

【问题讨论】:

    标签: css ruby-on-rails twitter-bootstrap form-for bootstrap-sass


    【解决方案1】:

    在此处查看 bootstrap v3 文档http://getbootstrap.com/css/#forms-horizontal 而且您不需要添加form tag,因为您已经在使用form_for

     <%= form_for @user, :html => {:class => "form-horizontal center"} do |f| %>
          <div class="form-group">
            <%= f.label :fname, "First name:", class: "col-md-4 control-label" %>
            <div class="col-md-8">
              <%= f.text_field :fname, class: "form-control" %>
            </div>
          </div>
          <div class="form-group">
            <%= f.label :lname, "Last name:", class: "col-md-4 control-label" %>
            <div class="col-md-8">
              <%= f.text_field :lname, class: "form-control" %>
            </div>
          </div>
    
          <div class="form-group">
            <%= f.label :comments, "Comments:", class: "col-md-4 control-label" %>
            <div class="col-md-8">
              <%= f.text_field :comments, class: "form-control" %>
            </div>
          </div>
          <div class="radio">
            <%= f.radio_button :attend, 'yes', :checked => true %> I will attend.
            <br />
            <%= f.radio_button :attend, 'no', :checked => false %> I will not attend.
          </div>
          <div class="checkbox">
            <%= f.check_box :workshop %> Checkbox Description
          </div>
    
          <%= f.submit "Submit", class: "btn btn-default btn-primary" %>  
     <% end %>
    

    【讨论】:

    • 不,它不起作用。就字母而言,前两个字段恰好大小相同。使用另一个字段更容易看到格式分解。 (我将编辑主题以包含另一个不同大小的字段)
    • 在阅读getbootstrap.com/css/#grid-options 之后,似乎如果你减小浏览器宽度,它就会开始水平折叠……这就是你的情况发生的情况……我说得对吗?
    • 是的,你是对的!因此,只需将其更改为 xs 而不是 md 即可使其工作得更好!太好了,我现在对表单的唯一问题是出现了水平滚动条(无缘无故)。
    • 顺便说一句,form_for标签中的class: "form-horizontal center"没有添加css类,必须这样写才能工作::html =&gt; {:class =&gt; "form-horizontal center"}
    • 据我了解,如果您在同一类中使用不同的“col”尺寸,您可以根据屏幕尺寸设置不同的宽度。例如,class: "col-xs-2 col-md-4" 如果 = 768 像素,则设置为 4。请参阅引导网格文档:v4-alpha.getbootstrap.com/layout/grid
    猜你喜欢
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 2013-10-15
    • 2012-08-03
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多