0

这是我在 views/users/sessions/new.html.slim 中的内容

.container
  = form_for(resource, as: resource_name, url: session_path(resource_name), html: {class: "form-signin"}) do |f|
    h2.form-signin-heading
      = t('users.mailer.registrations.sessions.new.please_sign_in')
    .sr-only
      = f.label t('users.sessions.new.email_address')
      br/
    .form-control.email_input
      = f.email_field :email, autofocus: true, placeholder: "#{t('users.sessions.new.email_address')}", required: ""
      br/
    .sr-only
      = f.label t('users.sessions.new.password')
      br/
    .form-control.password_input
      = f.password_field :password, autofocus: true, placeholder: "#{t('users.sessions.new.password')}", required: ""
      br/
    - if devise_mapping.rememberable?
      .checkbox
        label
          = f.check_box :remember_me
          = t('users.sessions.new.remember_me')
    = f.submit t('users.mailer.sessions.new.log_in'), class: "button.btn.btn-lg.btn-primary.btn-block"
    .form-group
      .col-md-offset-4.col-md-8
       = render "devise/shared/links"

这是我在 assets/stylesheets/signin.css.scss 中的内容:

.form-signin {
  max-width: 330px;
  padding: 15px;
  margin: 0 auto;
}
.form-signin body {
  padding-top: 40px;
  padding-bottom: 40px;
  background-color: #ee
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
  text-align: center;
  margin-bottom: 10px;
}
.form-signin .checkbox {
  font-weight: normal;
}
.form-signin .form-control {
  position: relative;
  height: auto;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px;
  font-size: 16px;
}
.form-signin .form-control:focus {
  z-index: 2;
}
.form-signin .email_input {
  margin-bottom: -1px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.form-signin .password_input {
  margin-bottom: 10px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}   

我已经在我的 application.css.scss 中导入了这个样式表

在我的 en.yml 中,我有:

    users:
      sessions:
        new:
          please_sign_in: "Please Sign In"
          password: "Password"
          log_in: "Log In"
          email_address: "Email Address"
          remember_me: "Remember Me"    

这是我看到的:

我的结果

这是我期望看到的:

预期成绩

我是scss的新手。任何可以帮助我诊断问题的想法?

我做了以下更改:

.sr-only
  = f.label t('users.sessions.new.email_address')
.form-group
  = f.email_field :email, class: 'form-control form-signin email_input', autofocus: true, placeholder: "#{t('users.sessions.new.email_address')}", required: ""
.sr-only
  = f.label t('users.sessions.new.password')
.form-group
  = f.password_field :password, class: 'form-control form-signin password_input', autofocus: true, placeholder: "#{t('users.sessions.new.password')}", required: ""

我现在有:

我的结果 2

但是占位符文本没有显示,登录按钮不正确

4

1 回答 1

1

该类form-control直接在input元素上,而不是在它们的容器上。容器应该有一个form-group.

这个...

.form-control.email_input
    = f.email_field :email, autofocus: true, placeholder: "#{t('users.sessions.new.email_address')}", required: ""

...应该是这样的:

.form-group
  = f.email_field, class: 'form-control', ...
于 2017-10-13T22:02:05.747 回答