我知道这可能看起来像是一个小问题。感觉应该有一个简单的解决方案。我有一种感觉,我是SOL,但我想我先问。
http://jsfiddle.net/bczengel/FSDz9/5/
当图像没有浮动时,它具有所需的最终结果,其中图像和文本都是垂直居中的。向左浮动图像时,图像垂直居中,文本与图像顶部对齐。
答案 0 :(得分:10)
使用最小的html更改(将标题文本包装在<p>
)
table {
width: 500px;
border: solid 1px black;
}
table td {
text-align: center;
vertical-align: middle;
padding: 5px;
position: relative;
}
table td img {
width: 50px;
vertical-align: middle;
display: inline-block;
}
table td p {
display: inline-block;
width: 430px;
background: #ccc;
vertical-align: middle
}
<table>
<tr>
<td>
<img alt="test" src="http://t1.gstatic.com/images?q=tbn:ANd9GcQ-nkjB-srUT_dc7brfRDiDSVu8BQa_6TEbQYevP1gy2UkTdcXWzg" />
<p>Title Text</p>
</td>
</tr>
</table>
<br /><br />
<table>
<tr>
<td>
<img alt="test" src="http://t1.gstatic.com/images?q=tbn:ANd9GcQ-nkjB-srUT_dc7brfRDiDSVu8BQa_6TEbQYevP1gy2UkTdcXWzg" />
<p>Title Text <br /> on the next line</p>
</td>
</tr>
</table>
答案 1 :(得分:0)
您可以使用负边距方法垂直居中文本。为此,您可以将文本放在<span>
中,并使用以下css:
table
{
width: 500px;
border: solid 1px black;
}
table td
{
text-align: center;
vertical-align: middle;
padding: 5px;
position: relative;
}
table td img
{
width: 50px;
vertical-align: middle;
}
table.float td img
{
float: left;
}
table.float td span
{
position: absolute;
top: 50%;
margin-top: -10px; /* or half of the height of your text */
}