2016-06-30 3 views
0

これはなぜ機能しないのかわかりませんいくつかの入力ボックスを集中させようとしていて、他のスタックオーバーフロースレッドをチェックして解決策を試したが、仕事に..助けてください!ここで(inputタグのスタイルは)私もそうのようなdivの中にスタイルを試してみた私は今それを持っているか私のHTML入力エリアを中央に置くことができない

<!-- Register Form --> 
<div class="user_register" > 
    <form> 
     <table> 
     <tbody> 
      <br></br> 
      <tr> 
       <td><input type="text" name ='first_name' size='8 placeholder='First Name'/></td> 
       <td><input id ='last_name'type="text" name = 'last_name' size='8' placeholder ='Last Name'/></td> 
      </tr> 
      <br></br> 
      <tr> 
       <td><input style="margin:0px auto; display:block;" class='register_inputs' type="text" name='username' placeholder='Username' size='14'/></td> 
      </tr> 
      <tr> 
       <td><input style="margin:0px auto; display:block;" class='register_inputs' type="text" name='email' placeholder='Email'size='14' /></td> 
      </tr> 
      <tr> 
       <td><input style="margin:0px auto; display:block;" style="margin:0px auto; display:block;" class='register_inputs' type="password" name='password' placeholder='Password' size='14' /></td> 
      </tr> 
      <tr> 
       <td><input style="margin:0px auto; display:block;" class='register_inputs' type="password" name='confirm_password' placeholder='Confirm Password' size='14' /></td> 
      </tr> 
      <tr> 
       <td><a href="#"  class="submit_reg">Register</a></td> 
       <td><a href="#" class="back_to_login">Back</a></td> 
      </tr> 
     </table> 
    </form> 
</div> 

です:

<div style="text-align:center;"> 
    <input type="text" /> 
</div> 

と入力のクラス/ IDを使用し、 divをCSSでスタイルに囲みます。何もない。私は間違って何をしていますか?

+0

テキスト整列センターのテキストの幅と一致するように、私はまた、あなたの入力テキストボックスとパスワードにwidth: 100%を設定します。私はあなたが別の要素の中に要素を集中させようとしていると信じています。それはプロパティalign:input要素の中心を必要とします。 http://www.w3schools.com/css/css_align.asp –

+0

を参照して、余白を追加するだけです:0 auto;テーブルの上にそれが中心になる、私の答えをチェックしてください:-) –

答えて

0

は自分のCSSにtable { margin : 0 auto }を追加し、それが

を中央に表示されます私は、私が何を意味するかを証明するようにコードを追加しました:)

table { margin : 0 auto; }
<div class="user_register" > 
 
          <form> 
 
          <table> 
 
          <tbody> 
 
        <br></br> 
 

 

 
          <tr> 
 
           <td><input type="text" name ='first_name' size='8 placeholder='First Name'/></td> 
 
           <td><input id ='last_name'type="text" name = 'last_name' size='8' placeholder ='Last Name'/></td> 
 
          </tr> 
 
          <br></br> 
 

 

 
          <tr> 
 
           <td><input style="margin:0px auto; display:block;" class='register_inputs' type="text" name='username' placeholder='Username' size='14'/></td> 
 

 
          </tr> 
 

 
          <tr> 
 
           <td><input style="margin:0px auto; display:block;" class='register_inputs' type="text" name='email' placeholder='Email'size='14' /></td> 
 

 
          </tr> 
 

 
          <tr> 
 
           <td><input style="margin:0px auto; display:block;" style="margin:0px auto; display:block;" class='register_inputs' type="password" name='password' placeholder='Password' size='14' /></td> 
 
          </tr> 
 

 
          <tr>  
 
           <td><input style="margin:0px auto; display:block;" class='register_inputs' type="password" name='confirm_password' placeholder='Confirm Password' size='14' /></td> 
 

 
          </tr> 
 

 
          <tr> 
 
           <td><a href="#"  class="submit_reg">Register</a></td> 
 
           <td><a href="#" class="back_to_login">Back</a></td> 
 
          </tr> 
 
         </table> 
 
         </form> 
 
        </div>

以下のコードでは、1列の行に2つの列と一致するようにcolspan="2"を追加しました。彼らは、その親要素の中td

table { margin : 0 auto; } 
 
td { padding : 0px 2px; } 
 

 
input[type="text"], 
 
input[type="password"] { 
 
width : 100%; 
 
} 
 

 
a.back_to_login { 
 
    text-align : right; 
 
    display : block; 
 
}
<div class="user_register" > 
 
    <form> 
 
     <table> 
 
      <tbody> 
 
       <tr> 
 
        <td><input type="text" name ='first_name' size='8 placeholder='First Name'/></td> 
 
        <td><input id ='last_name'type="text" name = 'last_name' size='8' placeholder ='Last Name'/></td> 
 
       </tr> 
 
       <tr> 
 
        <td colspan="2"><input style="margin:0px auto; display:block;" class='register_inputs' type="text" name='username' placeholder='Username' size='14'/></td> 
 
       </tr> 
 
       <tr> 
 
        <td colspan="2"><input style="margin:0px auto; display:block;" class='register_inputs' type="text" name='email' placeholder='Email'size='14' /></td> 
 
       </tr> 
 
       <tr> 
 
        <td colspan="2"><input style="margin:0px auto; display:block;" style="margin:0px auto; display:block;" class='register_inputs' type="password" name='password' placeholder='Password' size='14' /></td> 
 
       </tr> 
 
       <tr>  
 
        <td colspan="2"><input style="margin:0px auto; display:block;" class='register_inputs' type="password" name='confirm_password' placeholder='Confirm Password' size='14' /></td> 
 
       </tr> 
 
       <tr> 
 
        <td><a href="#" class="submit_reg">Register</a></td> 
 
        <td><a href="#" class="back_to_login">Back</a></td> 
 
       </tr> 
 
     </table> 
 
    </form> 
 
</div>

+0

ありがとう、これは最も簡単な方法でした。あなたの例に基づいていますが(上の2つのボックスで絶対位置のCSSを削除しても)、何らかの理由で入力が左に表示されます。しかし、少なくとも私は今のところうまくいきます。 –

+0

は、親に設定したルールを無視するため、絶対位置を使用しません。 2つの列を持つ行と1つの列に1つの列にtd colspan = "2"を設定した行がある場合は、私の答えを更新して、意味を表示します –

0

これを追加してdiv { display: table; margin: 0 auto; }の中心にしますが、主要なブラウザをサポートしています。

0

あなたはフレキシボックスの機能を使用することができます。

div { 
 
    display: flex; 
 
    flex-flow: column nowrap; 
 
} 
 

 
div > * { 
 
    width: 100px; 
 
    margin: 6px auto; 
 
}
<div> 
 
    <input type="text" /> 
 
    <input type="radio" /> 
 
    <input type="checkbox" /> 
 
    <select> 
 
    <option value="">Option</option> 
 
    </select> 
 
<div>

関連する問題