bootstrap form-inline以在一行中显示字段

时间:2012-12-16 01:57:27

标签: css ruby-on-rails twitter-bootstrap

我希望我的登录表单能够显示彼此相邻的行,而不是彼此之下。

头:

更新:此代码现在可以使用

<header class="navbar navbar-fixed-top navbar-inverse">
<div class="navbar-inner">
<div class="container">
  <%= link_to "Apollo", root_path, id: "logo" %>
  <nav>
    <ul class="nav pull-right">

<%= form_for(:session, url: sessions_path, :html => { :class => "form-inline"}) do |f| %>
  <input id="session_email" name="session[email]" type="text" class="input-medium" placeholder="Email">
  <input id="session_password" name="session[password]" type="password" class="input-medium" placeholder="Password">
  <button type="submit" class="btn btn-small btn-primary">Sign in</button>
<% end %>

</ul>
  </nav>
</div>
</div>
</header>

生成的HTML

<header class="navbar navbar-fixed-top navbar-inverse">
<div class="navbar-inner">
<div class="container">
  <a href="/" id="logo">Apollo</a>
  <nav>
    <ul class="nav pull-right">

          <div class="row">
            <div class="span2 offset3">
              <form accept-charset="UTF-8" action="/sessions" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="xmS0FBX+pX8ZzBr/yHIUNmXOQMFI4krsv3FxIl51Hjg=" /></div>

                  <input id="session_email" name="session[email]" placeholder="Email" size="30" type="text" />

                  <input id="session_password" name="session[password]" placeholder="Password" size="30" type="password" />

                  <input class="btn btn-small btn-primary" name="commit" type="submit" value="Sign in" />

</form>                </div>
          </div>
    </ul>
  </nav>
</div>
</div>
</header>

自定义CSS.SCSS

@import "bootstrap";

/* mixins, variables, etc. */

$grayMediumLight: #eaeaea;

@mixin box_sizing {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

/* forms */

input, textarea, select, .uneditable-input {
  border: 1px solid #bbb;
  width: 100%;
  padding: 10px;
  margin-bottom: 15px;
  @include box_sizing;
}

input {
  height: auto !important;
}

2 个答案:

答案 0 :(得分:3)

更改您的CSS。

这不是view的问题。

看起来你正在使用bootstrap,所以将类.form-inline添加到表单中:

<%= form_for(:session, url: sessions_path, :html => { :class => "form-inline"}) do |f| %>

答案 1 :(得分:2)

表单中的每个input元素应显示为内联块或内联块,并且应调整大小以适合单行上的所有元素。任何溢出都会被撞到下一行。

给表单一个类。例如,inline_form

form.inline_form input {
  display: inline-block;
  width: 80px; //small for example
}

Example using your code