2016-04-30 34 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%,然後更改輸入字段寬度

相關問題