2012-06-12 10 views
18

Wie zentriere ich vertikal ein div, das in einer Tabellenzelle ist?Wie richte ich ein Div in einer Tabellenzelle vertikal aus?

HTML:

<tr class="rowClass"> 
    <td class="cellClass"> 
     <div class="divClass">Stuff</div> 
    </td> 
</tr> 

CSS:

.rowClass { 
    vertical-align:middle !important; 
    height:90px; 
} 

.cellClass { 
    vertical-align:middle !important; 
    height:90px; 
} 

.divClass { 
    vertical-align:middle !important; 
    height:90px; 
} 

Ich weiß, dass die Klassendefinitionen überflüssig sind, aber ich habe viele verschiedene Dinge versucht. Warum ist die Lösung (was auch immer es ist) nicht intuitiv? Keine der "offensichtlichen" Lösungen, die ich versuchte, würde funktionieren.

Antwort

13

Es gibt keine Notwendigkeit, 01 zu definieren,in .divClass. schreiben wie folgt aus:

.cellClass { 
    vertical-align:middle; 
    height:90px; 
    border:1px solid red; 
} 

prüfen diese http://jsfiddle.net/ncrKH/

+1

Vielen Dank! Ich hatte 'float: left', was alles vermasselte. –

+1

Ja, float & display: Block-Effekt-Tabellenfunktionalität. – sandeep

1

.divClass { margin-top:auto; }

HTML

<table border=1> 
<tr class="rowClass"> 
<td class="cellClass"> 
    <div class="divClass">Stuff</div> 
</td> 
</tr> 
</table> 

CSS

.rowClass { 
vertical-align:middle !important; 
height:90px; 
} 

.cellClass { 
vertical-align:middle !important; 
height:90px; 
} 

.divClass { 
margin-top:auto; 
}​ 

Live Example

+1

Setzen Sie den Inhalt Ihrer Fiddle in deine Antwort hier, und erklären, was der Code tut. Siehe auch http://meta.stackexchange.com/questions/8231 –

0

Mit heraus sich jeder css Sie dies versuchen, diesen Code mit valign="middle" tun können.

<table width="100%" border="1" cellspacing="0" cellpadding="0"> 
    <tr> 
    <th height="550" align="center" valign="middle" scope="col"> 

    <div>Hello</div> 
    </th> 
    </tr> 
</table> 
Verwandte Themen