1

这是示例

我在说的是,当您模糊密码字段(例如此处)时,JS 会在表单错误消息下方插入。问题是滑下FB登录链接,我不知道为什么。

此外,这是一个附带问题,但是当您将鼠标悬停在提交按钮上时(效果使边框变宽)FB 链接也会向下移动一点。

.new_user_popup {
    position: fixed;
    top: 50%;
    left: 50%;
    margin-top: -105px;
    margin-left: -300px;
    background: #fff;
    width: 600px ;
    height: 210px;
    font-family: Arial,Liberation Sans,DejaVu Sans,sans-serif;
    z-index: 9999999;
    font-size: 14px;



}
.new_user {
    border-right-style: solid;
    border-color:  rgba(80, 140, 255, 0.83);
    border-width: 1px;
    padding-right: 40px;
    margin-top: 30px;
    margin-left: 50px;
    display: inline-block;
    width: 200px;




}
input#user_email{
   width: 180px;
    border-color:  rgba(80, 140, 255, 0.83);
    height: 15px;
    font-size: 13px;
}
input#user_password{
    width: 180px;
    border-color:  rgba(80, 140, 255, 0.83);
    height: 15px;
    font-size: 13px;
}
input#user_password_confirmation{
    width: 180px;
    border-color:  rgba(80, 140, 255, 0.83);
    height: 15px;
    font-size: 13px;
}





.sign_up_submit {
    margin-top: 5px;
    border-style: solid;
    background-color: #ffffff;
    color: rgba(80, 140, 255, 0.93);
    border-width: 2px;
    padding-bottom: 10px;
    height: 25px;
    font-family: Arial,Liberation Sans,DejaVu Sans,sans-serif;
    font-size: 16px;
    border-style: solid;
    border-color:  rgba(80, 140, 255, 0.83);
    font-weight: 500;

}
.sign_up_submit:hover {
       border-width: 3px;
}

.format_error {
    background-color: #d61354;
    font-family: Arial,Liberation Sans,DejaVu Sans,sans-serif;;
    font-weight: 300;
    font-size: 12px;
    color: white;
    padding-right: 0;

    width: 150px;
}
.fb_sign_up{
    display: inline-block;
    vertical-align: 50px;
    margin-left:50px;

}
#facebook_sign_up{

    display: block;
    width: 200px;
    height: 53px;
    background: url(http://static.freepik.com/free-photo/fb-connect-button-vector_630856.jpg) ;
    background-size: 200px 106px;
    background-position: 0 0;




}
4

2 回答 2

1

那是因为您的.fb_sign_updiv 是一个内联块,并且vertical-align您正在设置的是相对于父级(当错误消息显示时会展开)。从MDN 页面上vertical-align

<length>

将元素的基线在其父基线上方以给定长度对齐

我相信您可以通过几个小改动来达到预期的效果:

.fb_sign_up{
    display: inline-block;
    vertical-align: top;
    margin-top: 50px;
    margin-left:50px;
}

http://jsfiddle.net/tHV4W/1/

于 2013-05-21T20:14:53.010 回答
0

看起来像是对内联块的普遍滥用。表单元素应该永远是块元素。但是为了快速修复,我让它在这里工作。

http://jsfiddle.net/uuyFt/

有了这个,我添加float: left.new_user更改vertical-alignpadding-topon.fb_signup

您可能需要考虑使用 CSS 框架来帮助布局您的列。Bootstrap CSS 是一种流行的选择。

于 2013-05-21T20:21:29.063 回答