【问题标题】:How can I reduce my input column width on Devise using Bootstrap Forms如何使用 Bootstrap Forms 减少 Devise 上的输入列宽
【发布时间】:2015-10-25 14:36:06
【问题描述】:

我是一名新编码员,并在 RAILS 上使用 Devise 注册身份验证 gem。我正在尝试自定义注册表单的输入列。我想缩短列宽,因为它们在页面上看起来太宽了。(从左到右)

见图片。 enter image description here

请问我可以在我的代码中添加什么来实现这一点。

<div class="form-group">
  <%= f.label :email %>
  <%= f.email_field :email, autofocus: true, class: "form-control" %>
</div>

<div class="form-group">
    <%= f.label :password %>
    <%= f.password_field :password, class: "form-control" %>
</div>

<div class="form-group">
    <%= f.label :password_confirmation %>
    <%= f.password_field :password_confirmation, class: "form-control" %>
</div>

<div class="form-group">
    <%= f.submit "Sign up", class: "btn btn-primary" %>
</div>

【问题讨论】:

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


    【解决方案1】:

    您需要将表单包装到某个容器中,该容器不会跨越所有可用宽度。阅读Bootstrap's grid system。 Bootstrap 使用 12 列网格,因此,例如,如果您希望表单采用页面宽度的 1/3,则需要将其包装成 &lt;div class="col-md-4"&gt;&lt;/div&gt;(因为 12 / 3 = 4)。

    当然,我相信这样的事情应该可行:http://codepen.io/anon/pen/vNRxGd

    【讨论】:

    • Alexey,非常感谢您的帮助。您能否根据我上面的代码向我展示这段代码在视觉上的外观。
    • Alexey 在我的页面上看到这项工作令人鼓舞。我非常感谢您在周日抽出时间提供帮助。一个小问题。如果您看到我的页面的图像(刚刚发布了您的修复更新)。如何获取登录链接以在 Button 下方呈现。
    • @ChrisDormani 你能分享你当前的 html 代码(用它更新你的问题)吗?
    • 代码就是你的代码,最后渲染一小块。
  • 好吧,试着把设计链接放到&lt;div class="col-md-4"&gt;
  • 【解决方案2】:
    <div class="col-md-4">
    <h2>Signup</h2>
    
    <form class="form-signup">
      <div class="form-group">
        <label for="email">Email</label>
        <input type="email" class="form-control">
      </div>
      <div class="form-group">
        <label for="password">Password</label>
        <input type="password" class="form-control">
      </div>
      <div class="form-group">
        <label for="passwordconfirm">Password confirmation</label>
        <input type="password" class="form-control">
      </div>
      <button class="btn btn-danger btn-block" type="submit">Sign Up</button>
    </form>
    </div>
    

    【讨论】:

      【解决方案3】:

      这里有两种不同方式的示例:一种只是限制表单本身的大小(宽度),另一种使用columns(您可以通过多种方式进行调整,这只是其中一种。)

      Grid OptionsForms

      下面的工作示例。

      .form-signup {
        max-width: 500px;
        padding: 15px;
        margin: 0 auto;
      }
      .form-signup .form-signup-heading {
        margin-bottom: 20px;
      }
      .form-signup .form-control {
        font-size: 16px;
      }
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
      <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
      <nav class="navbar navbar-default">
        <div class="container-fluid">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
      
            </button> <a class="navbar-brand" href="#">Brand</a>
      
          </div>
          <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
              <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a>
      
              </li>
            </ul>
          </div>
        </div>
      </nav>
      <div class="container">
        <div class="form-signup-heading text-center">
          <h2>Sign up if you don't have an account:</h2>
      
        </div>
        <form class="form-signup">
          <div class="form-group">
            <label for="email">Email</label>
            <input type="email" class="form-control">
          </div>
          <div class="form-group">
            <label for="password">Password</label>
            <input type="password" class="form-control">
          </div>
          <div class="form-group">
            <label for="passwordconfirm">Password confirmation</label>
            <input type="password" class="form-control">
          </div>
          <button class="btn btn-danger btn-block" type="submit">Sign Up</button>
        </form>
      </div>
      <hr>
      <nav class="navbar navbar-default">
        <div class="container-fluid">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-2" aria-expanded="false"> <span class="sr-only">Toggle navigation</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
      
            </button> <a class="navbar-brand" href="#">Brand</a>
      
          </div>
          <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-2">
            <ul class="nav navbar-nav navbar-right">
              <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a>
      
              </li>
            </ul>
          </div>
        </div>
      </nav>
      <div class="container">
        <div class="row">
          <h2 class="text-center">Sign up if you don't have an account:</h2>
      
          <form class="form-signup2">
            <div class="col-sm-4">
              <div class="form-group">
                <label for="email">Email</label>
                <input type="email" class="form-control">
              </div>
            </div>
            <div class="col-sm-4">
              <div class="form-group">
                <label for="password">Password</label>
                <input type="password" class="form-control">
              </div>
            </div>
            <div class="col-sm-4">
              <div class="form-group">
                <label for="passwordconfirm">Password confirmation</label>
                <input type="password" class="form-control">
              </div>
            </div>
            <div class="col-sm-4 col-sm-offset-4 text-center">
              <button class="btn btn-danger btn-block" type="submit">Sign Up</button>
            </div>
          </form>
        </div>
      </div>

      【讨论】:

      • - 你真好。示例 2 是否在registrations/new.html.erb 文件夹中实现
      • 还有你的例子 1. 一小段代码。是在我上面的代码下面在 END 之前的 new.html.erb 注册文件夹中吗
      • 是的,在 new.html.erb 中,您需要创建一个类似于&lt;div class="form-signup"&gt; 的 div,它在 form_for 之前和 end 之后或者您的链接之后,具体取决于您的视图设置方式。
      • 你到底是什么意思。我是否应该剪切并粘贴整个部分并将其撞到 new.html.erb
      • 你可以把&lt;div class="form-signup"&gt;留在那里,但我会把它移到form_for上面,然后你把CSS放在你的样式表目录中,而不是直接放在页面上。
      【解决方案4】:

      Bootstrap,尤其是 v4 及更高版本,跨越表单域。您需要将代码放在一个容器中,通常是一列,这样它就不会填满整个页面。 @Chris Dormani 和 @Alexei Shein 的示例和建议是正确的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-19
        • 2013-09-22
        • 2013-09-03
        • 2013-12-04
        • 2019-09-09
        • 2017-03-01
        • 1970-01-01
        相关资源
        最近更新 更多