2011-09-17 3 views

risposta

14

questo risolve il punto morto di dialogo sullo schermo:

HTML

<table class="box" border="1px"> 
    <tr> 
     <td> 
      my content 
     </td> 
    </tr> 
</table> 

CSS

.box { 
    width:300px; 
    height:300px; 
    background-color:#d9d9d9; 
    position:fixed; 
    margin-left:-150px; /* half of width */ 
    margin-top:-150px; /* half of height */ 
    top:50%; 
    left:50%; 
} 

Visualizza i risultati del

http://jsfiddle.net/bukov/wJ7dY/168/

+1

Solo alcune note: la posizione: absolute' di solito sarà migliore di 'fixed', potrebbe essere necessario impostare' position: relative' per l'elemento genitore, e ci saranno problemi quando le dimensioni della tabella non saranno note. Ma se _can_passa le dimensioni, allora questo metodo è OK. – Arsen7

+0

Gli elementi fissi di posizione sono relativi alla finestra mentre gli elementi di posizione assoluti sono relativi al genitore (che può essere anche la finestra, se posizionato al di fuori del div principale), è molto più semplice posizionare qualcosa rispetto alla finestra rispetto ad alcuni div nel caso di moduli di accesso o popup, quindi sono andato con quello. –

+0

Hai ragione. Risolto infatti sarà meglio per le finestre di login. – Arsen7

13

Il centraggio orizzontale è facile. Hai solo bisogno di impostare entrambi i margini su "auto":

table { 
    margin-left: auto; 
    margin-right: auto; 
} 

verticale centraggio di solito si ottiene impostando il tipo di visualizzazione elemento padre di table-cell e utilizzando vertical-align proprietà. Supponendo di avere un <div class="wrapper"> intorno alla tua mensa:

.wrapper { 
    display: table-cell; 
    vertical-align: middle; 
} 

Informazioni più dettagliate sono reperibili sul http://www.w3.org/Style/Examples/007/center

Se hai bisogno di supporto per le versioni precedenti di Internet Explorer (non so cosa funziona nel quale versione di questo strano e raramente utilizzato il browser ;-)) allora si potrebbe voler search the web per ulteriori informazioni, come: http://www.jakpsatweb.cz/css/css-vertical-center-solution.html (solo un primo colpo, che sembra parlare di IE)

+3

Il/parte destra centratura sinistra funzionato, ma le sue istruzioni centrarsi verticalmente sembra negare tutto. Ecco il codice che hai dato e i risultati, tutto finisce in alto a sinistra dello schermo. L'ho compilato male? http://jsfiddle.net/wJ7dY/161/ – Bukov

+1

Il wrapper deve essere più grande di quello che contiene; o) Vedi http://jsfiddle.net/uLQZU/ –

0

This guy aveva la bacchetta magica che stavamo cercando, ragazzi.

di citare la sua risposta:

Just Add "position: fixed" e sarà tenerlo in considerazione, anche se si scorre verso il basso. vederlo al http://jsfiddle.net/XEUbc/1/

#mydiv { 
    position:fixed; 
    top: 50%; 
    left: 50%; 
    width:30em; 
    height:18em; 
    margin-top: -9em; /*set to a negative number 1/2 of your height*/ 
    margin-left: -15em; /*set to a negative number 1/2 of your width*/ 
    border: 1px solid #ccc; 
    background-color: #f3f3f3; 
} 
3

Sto usando questo piccolo trucco per un po '. Potresti divertirti.nido la tabella che si desidera centrare in un'altra tabella:

<table height=100% width=100%> 
<td align=center valign=center> 

(aggiungere il tavolo qui)

</td> 
</table> 

l'align e valign mettere la tabella esattamente al centro dello schermo, non importa che cosa sta succedendo.

+0

Funziona solo se si rimuove il! DOCTYPE di quanto segue: Ovviamente se si utilizza un editor che aggiunge questo in modo predefinito. Mi ha fatto impazzire una volta provando questo "cheat" e non riuscivo a capire perché non funzionava. – IamBatman

0

Ho provato sopra l'attributo align in HTML5. Non è supportato Ho anche provato flex-align e vertival-align con gli attributi di stile. Ancora non è possibile posizionare TABELLA al centro dello schermo. Il seguente stile posiziona la tabella al centro in senso orizzontale.

style = "margin: auto;"

3

per l'allineamento orizzontale (No CSS)

basta inserire un attributo align all'interno del tag table

<table align="center"></table