2012-12-28 10 views
13

Ho un problema molto semplice: ho bisogno di centrare una tabella all'interno di un elemento TD. Se dovessi usare HTML 4 lo farei in questo modo:Centrare una tabella all'interno di un TD

​<table style="border:solid;width: 100%"> 
    <tr> 
     <td align="center"> 
      <table style="border:solid; width:50%"> 
       <tr> 
        <td >I must be in the center</td>      
       </tr> 
      </table> 
     </td>      
    </tr> 
</table>​ 

Ma sto cercando di non utilizzare gli attributi deprecato e farlo nel modo CSS. Ho già provato questo:

<td style="text-align:center"> 

E questo:

<td style="margin: 0 auto"> 

E le tabelle tiene nel lato sinistro della cella. Eventuali suggerimenti?

+1

Layout basato su tabella, nooooooooo! –

+0

Lo so, ma non ho scelta :( –

+0

C'è praticamente sempre una scelta lol –

risposta

19

Hai avuto l'idea giusta con margin:auto 0; appena decollare l'esempio 0.

di lavoro: http://jsfiddle.net/cxnR8/

<table style="border:solid;width: 100%"> 
    <tr> 
     <td> 
      <table style="margin:auto;border:solid; width:50%"> 
       <tr> 
        <td >I must be in the center</td>      
       </tr> 
      </table> 
     </td>      
    </tr> 
</table>​ 

Ma, ancora più importante, non si ha realmente bisogno di utilizzare le tabelle e in-line messa in piega?

+0

Ecco, ma l'attributo align del TD non è affatto necessario, vero? –

+0

Sì, sei corretto. Anche se i browser possono scegliere per supportarlo tramite la modalità legacy/quirks, l'attributo 'align' non fa parte delle specifiche HTML5 e non dovresti usarlo. –

1

Il tuo suggerimento per il secondo è corretto. See this working example.

HTML:

<table class="outer"> 
    <tr> 
     <td> 
      <table class="inner"> 
       <tr> 
        <td>in the middle</td>      
       </tr> 
      </table> 
     </td>      
    </tr> 
</table>​ 

CSS:

.outer 
{ 
    width: 100%; 
    border: solid 1px red; 
} 
.inner 
{ 
    width: 25%; 
    margin: auto; 
    border: solid 1px blue; 
} 
​ 
1

Centro tabella utilizzando l'attributo di align="" deprecato.

<table> 
    <tr> 
     <td> 
      <table align="center"> 
       <tr> 
        <td>in the middle</td>      
       </tr> 
      </table> 
     </td>      
    </tr> 
</table>​