web-dev-qa-db-ja.com

中央に配置されていないフォーム入力要素

私はここでいくつかの異なる答えを見てきましたが、それらはすべてtext-alignに要約されているようです:親divのスタイルの中心です。私はそれを試しましたが、ラベルでは機能しますが、実際の入力要素では機能しません。

JSFiddle

基本的なコードは次のとおりです。

html

<div id="content"> 
  <div id="login_form"> 
    <h2>Log in to DOT Voting</h2> 
    <form>
        <label for="username">Username</label>
        <input type="text" name="username" value=""  />
        <label for="password">Password</label>
        <input type="password" name="password" value=""  />
        <input type="submit" name="submit" value="Log In"  />
  </div>     
</div> 

css

#login_form {
    width:90%;
    background-color: #bdd2ff;
    border: 1px solid white;
    margin: 50px auto 0;
    padding: 1em;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    text-align: center;
}

input[type=text], input[type=password] {
    text-align:center;
    display: block;
    margin: 0 0 1em 0;
    width: 90%; 
    border: 1px solid #818181;
    padding: 5px;
}

input[type=submit] , form a {
    border: none;
    margin-right: 1em;
    padding: 6px;
    text-decoration: none;
    font-size: 12px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    background: #cfdeff;
    color: black;
    box-shadow: 0 1px 0 white;
    -moz-box-shadow: 0 1px 0 white;
    -webkit-box-shadow: 0 1px 0 white;
}

input[type=submit]:hover, form a:hover {
    background: #007cc2;
    cursor: pointer;
}

Login_form divはページの中央に配置され、フォームラベルはdivの中央に配置され、送信ボタンはdivの中央に配置されます。ただし、テキスト入力ボックスは中央に配置されていません。それらを中央に強制するために何ができますか? (入力ボックスの内容が中央に配置されているかどうかは関係ありません。ボックス自体をdivの中央に配置したいだけです。)

12
EmmyS

追加

margin: auto;

input[type=text], input[type=password]クラスに。

また、入力のテキストが中央に配置されるため、必ずtext-align: center;属性を削除してください。

JSFiddle

23
rolling stone

text-alignはブロック要素では機能しません。 display:blockinput[type=text], input[type=password]を削除するか、display:inline-blockに変更します。インラインブロックは<IE7では機能しないことに注意してください。

または、入力で幅が宣言されているため、text-align:centerを削除してmargin: 0 auto 1em auto;を使用できます。

2
Emily

margin要素のinput宣言を修正して、margin-leftおよびmargin-rightautoを使用します。

#login_form {
    width:90%;
    background-color: #bdd2ff;
    border: 1px solid white;
    margin: 50px auto 0;
    padding: 1em;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    text-align: center;
}

input[type=text], input[type=password] {
    text-align:center;
    display: block;
    margin: 0 auto 1em auto;
    width: 90%;  /*280px;*/
    border: 1px solid #818181;
  /*  -moz-border-radius: 1px;
    -webkit-border-radius: 1px; */
    padding: 5px;
}

input[type=submit] , form a {
    border: none;
    margin-right: auto;
    margin-left: auto;
    padding: 6px;
    text-decoration: none;
    font-size: 12px;
    -moz-border-radius: 4px;
    -webkit-border-radius: 4px;
    background: #cfdeff;
    color: black;
    box-shadow: 0 1px 0 white;
    -moz-box-shadow: 0 1px 0 white;
    -webkit-box-shadow: 0 1px 0 white;
}

input[type=submit]:hover, form a:hover {
    background: #007cc2;
    cursor: pointer;
}

JSフィドルを更新

2
David Thomas

これは、90%のinput [type = text]、input [type = password] css値に基づいて中央に配置されます。固定幅で定義することも、液体レイアウトの場合は100%幅に設定して、マージンを調整することもできます。

0
Downtap