2016-10-03 6 views
0

Ich dachte, das Hinzufügen eines margin von auto auf ein Element mit einem bekannten width wird ein Element zentrieren, da die Ränder auf beiden Seiten gleich werden. Ich bin mir jedoch nicht sicher, wo ich falsch liege: Wie kann ich diesen Knopf auf der Seite zentrieren?Warum ist der Knopf nicht zentriert?

 p { 
 
      font-family: helvetica, sans-serif; 
 
      font-size: 18px; 
 
     } 
 
     
 
     button { 
 
      background-color: lightblue; 
 
      color: white; 
 
      padding: 15px 32px; 
 
      border-radius: 4px; 
 
      border: 5px solid lightblue; 
 
      
 
     } 
 
     
 
     .upload-button { 
 
      width: 300px; 
 
      margin: 10px auto; 
 
    
 
     } 
 
     
 
     button:hover { 
 
      background: white; 
 
      border: 5px solid lightblue; 
 
      color: lightblue; 
 
     } 
 
     
 
     html, body { 
 
      height: 100%; 
 
     } 
 
     
 
     body { 
 
      width: 960px; 
 
      margin: auto; 
 
     }
<button id="upload-button" class="upload-button" type="button">why is this button not centered</button>

+0

Wollen Sie es nur horizontal oder sowohl horizontal als auch vertikal zentriert werden? –

Antwort

2

Ein Knopf ist ein Inline-Element standardmäßig, so dass Sie es durch Hinzufügen eines Container div um die Schaltfläche Zentrieren und dass der Behälter eine text-align: center Eigenschaft geben Sie die Taste korrekt auszurichten.

#container { 
 
    text-align: center; 
 
}
<div id="container"> 
 
    <button>Centered button!</button> 
 
</div>

Die margin: 0 auto funktioniert nur, wenn Ihr Element ein Block-Element ist. Sie können also auch display: block zu Ihrer Schaltfläche hinzufügen, um dasselbe zu erreichen. Dies würde der Schaltfläche zwar standardmäßig die volle Breite (100%) geben, Sie müssten sie aber auch mit fix festlegen.

#button1 { 
 
    display: block; 
 
    width: 150px; 
 
    margin: 0 auto; 
 
}
<button id="button1">Centered button!</button>

+0

Danke, Duncan. Du hast Recht. Wie auch immer, wie kommt es ohne das Div-und Text-Align-Center nicht zentriert. Ich frage nur, weil der Körper eine mit 960px definiert hat und der Button 300px ist also sollte nicht ein Rand von auto auf den Button zentrieren? –

+0

Super! Ich wusste nicht, Rand Auto funktioniert nur auf Block-Level-Elemente .. Ich werde die Antwort in 6 Minuten, wenn SO lässt mich :) –

+1

@GovindRai Glücklich zu helfen :) Ich habe auch einige Beispiele hinzugefügt –

Verwandte Themen