使文本在相同的表格单元格中垂直和水平居中,图像向左浮动

Bri*_*gel 9 html css

我知道这可能看起来像一个小问题.感觉应该有一个简单的解决方案.我有一种感觉,我是SOL,但我想我先问.

http://jsfiddle.net/bczengel/FSDz9/5/

问题:

当图像没有浮动时,它具有所需的最终结果,其中图像和文本都是垂直居中的.向左浮动图像时,图像垂直居中,文本与图像顶部对齐.

要求:

  • 一个表格单元格
  • 仅使用给定的html(或对html的最小更改)的CSS
  • 我想避免使用行高解决方案,因为样式表适用于许多现有页面,其中一些页面在文本中有多行

Zol*_*oth 14

使用最小的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
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)