【发布时间】:2013-12-29 03:56:08
【问题描述】:
所以我对前端很陌生,所以我有一个简单的 CSS 问题:
我有一个使用 form_for 方法使用 Devise 生成的表单,如下所示:
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => "form-signin"} ) do |f| %>
<div class="account-wall">
<%= f.email_field :email, class: 'form-control', autofocus: true, placeholder: 'Email' %><br />
<%= f.password_field :password, class: 'form-control', autofocus: true, placeholder: 'Password' %>
<% if devise_mapping.rememberable? -%>
<div><%= f.check_box :remember_me %> <%= f.label :remember_me %></div>
<% end %>
<%= f.submit "Sign in" %>
</div>
<% end %>
<%= render "devise/shared/links" %>
我的样式表:
.form-signin
{
max-width: 330px;
padding: 15px;
margin: 0 auto;
padding-top: 5px;
}
.account-wall
{
margin-top: 20px;
padding: 40px 0px 20px 0px;
background-color: #f7f7f7;
-moz-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
}
.form-signin .form-control
{
position: relative;
font-size: 12px;
height: auto;
padding: 6px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
这是上面的代码产生的:
在account-wall 中将输入框/记住我/按钮居中并使它们更宽一点的最简单方法是什么?
生成的 HTML:
<div class="container">
<form accept-charset="UTF-8" action="/guest/actives/sign_in" class="form-signin" id="new_active" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="kCoKZR1wtX5dTGuvw8p+P0ZsTi3vBEv08IQXh+IOWhM=" /></div>
<div class="account-wall">
<img class="profile-img" src="../../assets/akpsi_bw_200.png" alt="akpsi_color_200">
<input autofocus="autofocus" class="form-control" id="active_email" name="active[email]" placeholder="Email" type="email" value="" /><br />
<input autofocus="autofocus" class="form-control" id="active_password" name="active[password]" placeholder="Password" type="password" />
<div><input name="active[remember_me]" type="hidden" value="0" /><input id="active_remember_me" name="active[remember_me]" type="checkbox" value="1" /> <label for="active_remember_me">Remember me</label></div>
<input name="commit" type="submit" value="Sign in" />
</div>
</form>
【问题讨论】:
-
你能发布你当前生成的html吗?
-
我认为设置
margin-left: auto; margin-right: auto;在应用于帐户墙内的元素时会起作用,但您需要手动设置元素的宽度。但是,既然你想让它们更宽,那应该不是问题,只需在 CSS 中为它们设置一个width值。 -
你只需要添加 text-align:center;到您的 .form-signin 类,元素将居中。 .account-wall input[type=email], .account-wall input[type=password]{margin:5px 5px;width:280px;} .account-wall div{display:inline-block;} 这些将帮助您放大输入并使复选框和按钮在一行内。请看下面的演示
标签: html css ruby-on-rails devise