2016-06-30 24 views
0

Also, nicht sicher, warum das nicht funktioniert Ich versuche, einige Eingabefelder zu zentrieren, und ich überprüfte einige andere Stapelüberlauf-Threads, versuchte die Lösungen und kann es immer noch nicht bekommen zu arbeiten .. bitte helfen! Hier ist, wie ich es jetzt (Stil auf dem Eingang-Tags)Kann meine HTML-Eingabebereiche nicht zentrieren

<!-- 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> 

ich auch Stil in der div wie so versucht habe:

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

und unter Verwendung einer Klasse/id an den Eingängen und umgebende div um mit CSS zu stylen. Nichts. Was mache ich falsch?

+0

text-align Zentren Text innerhalb des Elements. Ich glaube, dass Sie versuchen, das Element in einem anderen Element zu zentrieren. Das würde die Eigenschaft align: center auf dem Eingabeelement erfordern. Siehe http://www.w3schools.com/css/css_align.asp –

+0

Sie müssen nur Rand hinzufügen: 0 auto; auf dem Tisch und es wird zentriert sein, überprüfen Sie meine Antwort :-) –

Antwort

0

nur table { margin : 0 auto } auf Ihrem CSS hinzufügen und es wird

zentriert Ich habe den Code zu zeigen, was ich meine :)

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>

Auf dem folgenden Code ich colspan="2" auf Zeilen hinzugefügt, die einzelnen Spalt haben, so dass es Ihre Zeilen mit 2 Spalten entspricht. Ich habe auch width: 100% auf Ihre Eingabe Textbox und Passwort, so dass sie die Breite der Mutterspiele 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

Danke, das war der einfachste Weg. Obwohl es auf Ihrem Beispiel basiert (und wenn ich das CSS für die absolute Position in den obersten 2 Boxen entferne), setzt es die Inputs immer noch aus irgendeinem Grund links. Aber zumindest funktioniert das, was ich gerade habe. –

+0

Verwenden Sie keine absolute Position, da die Regeln ignoriert werden, die Sie für das übergeordnete Element festgelegt haben. Wenn Sie Zeilen haben, die 2 Spalten haben und andere eine Spalte haben, setzen Sie den td colspan = "2" auf eine einzelne Spalte, ich werde meine Antwort aktualisieren, um Ihnen zu zeigen, was ich meine –

0

Fügen Sie dies hinzu, um es zu zentrieren div { display: table; margin: 0 auto; }, aber es unterstützt die wichtigsten Browser.

0

können Sie Flexbox Eigenschaften:

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>