2012-08-03 27 views
60

Sto cercando di allineare un pulsante HTML esattamente al centro della pagina indipendentemente dal browser utilizzato. Può essere flottante a sinistra mentre è ancora al centro verticale o essere da qualche parte nella pagina come nella parte superiore della pagina, ecc. Voglio che sia centrato sia verticalmente che orizzontalmente. Ecco quello che ho scritto in questo momento:cercando di allineare il pulsante html al centro della mia pagina

<button type="button" 
style="background-color:yellow;margin-left:auto;margin-right:auto;display:block;margin-top:22%;margin-bottom:0%"> 
mybuttonname</button> 

risposta

91

, ecco la soluzione: http://jsfiddle.net/7Laf8/

Fondamentalmente, posizionare il pulsante in un div con testo centrato:

<div class="wrapper"> 
    <button class="button">Button</button> 
</div> 

Con i seguenti stili:

.wrapper { 
    text-align: center; 
} 

.button { 
    position: absolute; 
    top: 50%; 
} 

Ci sono molti modi per pelle un gatto, e questo è solo su e.

+0

qui non posso usare un file css separato. In realtà questo è un file XSL in cui è incorporato il codice html. C'è solo un pulsante da visualizzare poiché questo è un piccolo test per vedere come appare il pulsante. Quindi, non posso creare un altro file css. Se creo un altro file css per questo pulsante, ho bisogno di un file XML, XSL e CSS per questa semplice funzionalità. Userò un CSS separato per le funzionalità future che sono complementi – user1455116

+0

Vedi la mia modifica, e questo violino: dovresti essere in grado di prendere quel CSS e metterlo in linea: http://jsfiddle.net/7Laf8/ – Mohamad

+0

Ciao, il IE lo visualizza all'estrema sinistra ma rimane al centro verticale. Ma quando uso il tuo codice nel mio file, in linea, viene visualizzato correttamente sulla mia pagina. Dovrò controllare con altri browser anche oggi sera. Grazie – user1455116

1

posto è all'interno di un altro div, usare i CSS per spostare il pulsante al centro:

<div style="width:100%;height:100%;position:absolute;vertical-align:middle;text-align:center;"> 
    <button type="button" style="background-color:yellow;margin-left:auto;margin-right:auto;display:block;margin-top:22%;margin-bottom:0%"> 
mybuttonname</button> 
</div>​ 

Ecco un esempio: http://jsfiddle.net/U2B3x/

+0

ciao, ho visto nella casella dei risultati, il pulsante è all'estrema sinistra ed è a il centro verticale della pagina, non è quello che vedi? – user1455116

+0

Dipende dal browser che stai utilizzando. Ho notato che IE non accetta gentilmente le cose margin-left e margin-right, quindi per centrare l'uso text-align: center; sul div per ripararlo per IE. – Gyhth

3

provare questo è abbastanza semplice e dare non puoi apportare modifiche alle il file css questo dovrebbe funzionare

<p align="center"> 
<button type="button" style="background-color:yellow;margin-left:auto;margin-right:auto;display:block;margin-top:22%;margin-bottom:0%"> mybuttonname</button> 
</p> 
+0

Ho già provato questo, questo dipende dal browser non viene visualizzato correttamente in IE probabilmente perché margin-right: auto e margin-left: auto non sono capiti correttamente da IE – user1455116

15

ho davvero preso di recente per display: table di dare alle cose una dimensione fissa tale da consentire margin: 0 auto al lavoro. Ha reso la mia vita molto più facile. Hai solo bisogno di superare il fatto che la visualizzazione 'table' non significa table html.

È particolarmente utile per la progettazione reattiva in cui le cose diventano pazzesche e impazzite il 50% ha lasciato questo e -50% che diventa semplicemente ingestibile.

style 
{ 
    display: table; 
    margin: 0 auto 
} 

http://jsfiddle.net/Z52eR/

Inoltre, se hai due pulsanti e se si vuole la stessa larghezza che non hanno nemmeno bisogno di conoscere le dimensioni di ciascuno per ottenere loro di essere la stessa larghezza - perché il tavolo le ridurrà magicamente per te.

enter image description here

http://jsfiddle.net/AK674/2/

(questo funziona anche se sono in linea e si desidera centrare due pulsanti lato all'altro - Provate a farlo con percentuali!).

33

È possibile centrare un pulsante senza utilizzare text-align sul genitore div per semplice utilizzando margin:auto; display:block;

Ad esempio:

HTML

<div> 
    <button>Submit</button> 
</div> 

CSS

button{ 
    margin:auto; 
    display:block; 
} 

vederlo in azione:http://codepen.io/maudulus/pen/avBdpL

3

Ecco la soluzione come chiesto

<button type="button" style="background-color:yellow;margin:auto;display:block">mybuttonname</button>

1

Per me ha funzionato con FlexBox.

aggiungere una classe CSS intorno al div/elemento genitore con:

.parent { 
    display: flex; 
} 

e per l'uso tasto:

.button { 
    justify-content: center; 
} 

è necessario utilizzare un div genitore, altrimenti il ​​pulsante non lo fa ' sapere 'qual è il centro della pagina/elemento.

Problemi correlati