2016-03-21 15 views
1

電子メールとパスワードの幅がinput-containerの幅を外れているのはなぜですか?あなたはパディングを設定しているためだCSS入力エレメントの幅がコンテナの外に出る

form { 
 
    background: #ccc; 
 
    } 
 
    .input-container { 
 
    background: red; 
 
    width: 469px; 
 
    margin: 0 auto; 
 
    } 
 
    .usermail, 
 
    .userpword { 
 
    margin-top: 10px; 
 
    } 
 
    input, 
 
    button { 
 
    width: 100%; 
 
    border-radius: 6px; 
 
    border: 1px solid #cacece; 
 
    padding: 10px 12px; 
 
    font-size: 1em; 
 
    } 
 
    .username input { 
 
    width: 206px; 
 
    }
<form action='' method='post' id='signupform'> 
 
    <div class='input-container'> 
 
    <div class='username'> 
 
     <input type='text' name='fname' id='fname' placeholder='First Name'> 
 
     <input type='text' name='lname' id='lname' placeholder='Last Name'> 
 
    </div> 
 
    <div class='usermail'> 
 
     <input type='email' name='email' id='email' placeholder='Email'> 
 
    </div> 
 
    <div class='userpword'> 
 
     <input type='password' name='pword' id='pword' placeholder='Password'> 
 
    </div> 
 
    <button>Sign Up</button> 
 
    </div> 
 
</form>

+0

あなたのパディングは幅にはカウントされませんので、そうあなたの入力は '100%+パディング 'です。この問題を解決するには 'box-sizing:border-box'を使います。また、あなたの国境にも同じことが言えます。 – somethinghere

+2

[CSS入力の幅:100%が親の範囲外になる]重複している可能性があります(http://stackoverflow.com/questions/16907518/css-input-with-width-100-goes-outside-parents-bound) – showdev

+0

^Googleの "CSS Box Model" –

答えて

4

。これは、エレメントの幅の値とパディングセットを合計します。

この動作を回避するには、プロパティに追加することをお勧めしますbox-sizing: border-box

例:

#element{ 
    box-sizing: border-box;} 

あるいはさらに良い:

*{ 
    box-sizing: border-box;} 
+0

具体的には、それを 'input、button' CSSルールに追加してください。 – 4castle

+1

'even better'は非常に緩やかな定義ですが、多くの人がワイルドカードを使用すると全体的なパフォーマンスは_bad_となります。個人的には、ボックスモデル全体を逆さまにして '*'を使用しません。あなたが知っていると思うことはすべて異なっていますが、それは個人的な好みです。 – somethinghere

関連する問題