2016-04-30 66 views
0

我有一个输入的电子邮件和密码和其他一些按钮的形式。输入类型有100%的宽度,并在父div内

HTML:

<div id="login-form"> 
<form> 
    <input type="email" placeholder="Email" id="email" name="email_phone"> 
    <br> 
    <input type="password" placeholder="Password" id="password" name="password"> 
    <br> 
    <button id="login-submit">Submit</button> 
    <br> 
    <button id="login-forgot">Forgot Password</button> 
</form> 
<br> 
<br> 
<center> 
    <p>Don't have an account?</p> 
</center> 
<button id="create-new-account">Create Account Now</button> 
</div> 

我所需要的输入和按钮成为父的100%的宽度。 有10px的填充。

#login-form input[type=email], #login-form input[type=password] { 
    width: 100%; 
    font-size: 14pt; 
    border: none; 
    outline: none; 
    padding: 10px; 
} 

#login-form button { 
    width: 100%; 
    border: none; 
    color: white; 
    font-size: 14pt; 
    padding: 10px; 
    margin-top: 10px; 
    border-radius: 4px; 
    cursor: pointer; 
} 

然后问题从输入宽度开始。所有按钮都在父元素内,但输入框与父div交叉。就像这样:

enter image description here

demo at Codepen

如何让输入框保留在父div内并且宽度为100%并且仍然有填充

+1

父div有填充吗?或者只是尝试框大小:边框,看看是否有效,因为你已经添加了填充,如果框大小不是边框,那么它将被添加到元素 –

+0

不,它没有填充。 – Kakar

回答

3

问题在于输入填充。要修复它框大小调整属性添加到您的输入字段:

box-sizing: border-box; 

我只是测试它在你的codepen,好像你想要的结果。

+0

是的。这是解决方案。谢谢。 – Kakar

0

这是因为输入元素中的填充。它被设置为10,导致它不得不扩展到父元素的边缘。可能的解决方案包括删除填充或减小宽度,以便它很好地适应内部。

+0

但删除填充只是看起来很丑,因为文本从边界开始。是否有可能有填充,并保持在父div的输入? – Kakar

1

给予div宽度100%,然后更改输入字段宽度