【问题标题】:CSS: Different vertical alignments for a single <td>CSS:单个 <td> 的不同垂直对齐方式
【发布时间】:2012-09-26 23:59:39
【问题描述】:

我正在尝试创建一个表格,其中包含画廊中的图片及其正下方的名称。我想将每列中的图像垂直居中,并将名称对齐在&lt;td&gt; 的底部,但我似乎无法让它工作。到目前为止,这是我的代码:

table.gallery {
    width:100%;
    text-align: center;
    table-layout: fixed;
}
table.gallery td {
    padding: 10px 10px 10px 10px;
    width:33%;
    overflow: hidden;
}
table.gallery td img{
    vertical-align: middle;
}
table.gallery td span.desc {
    vertical-align: bottom;
}

还有我用来显示表格的 PHP 代码:

<table border="0" class="gallery"><tr>
<?php
    $curtd = -1;
    foreach ($img_arr as $item) {
        $curtd++;
        if ($curtd >= 3){
            echo '</tr><tr>';
            $curtd = 0;
        }
        echo '<td><center><a href="'.$item['link'].'" target="_blank"><img src="'.$item['thumb'].'" /></a></center>
                <span class="desc"><a href="'.$item['link'].'" target="_blank">'.$item['title'].'</a></span></td>';
    }
?>
</tr></table>

我的图像垂直居中显示没有问题,但名称仍直接显示在图像下方,而不是单元格底部。我该如何解决这个问题?

编辑:这是由 PHP 代码生成的 HTML(为了节省空间而删除了 URL 和其他内容):

<table border="0" class="gallery"><tr>
<td>
    <center><a href="[link]" target="_blank"><img src="[URL]" /></a></center>
    <span class="desc"><a href="[link]" target="_blank">[name]</a></span>
</td>
<td>
    <center><a href="[link]" target="_blank"><img src="[URL]" /></a></center>
    <span class="desc"><a href="[link]" target="_blank">[name]</a></span>
</td>
<td>
    <center><a href="[link]" target="_blank"><img src="[URL]" /></a></center>
    <span class="desc"><a href="[link]" target="_blank">[name]</a></span>
</td>
</tr><tr>
<td>
    <center><a href="[link]" target="_blank"><img src="[URL]" /></a></center>
    <span class="desc"><a href="[link]" target="_blank">[name]</a></span>
</td>
<td>
    <center><a href="[link]" target="_blank"><img src="[URL]" /></a></center>
    <span class="desc"><a href="[link]" target="_blank">[name]</a></span>
</td>
<td>
    <center><a href="[link]" target="_blank"><img src="[URL]" /></a></center>
    <span class="desc"><a href="[link]" target="_blank">[name]</a></span>
</td>
</tr></table>

【问题讨论】:

  • TABLES 用于数据,而不是布局。
  • 请发布您生成的 HTML,而不是 PHP。
  • 使用 HTML 输出编辑。而且我通常避免使用桌子,但它们似乎在这种情况下效果最好。

标签: html css html-table alignment center


【解决方案1】:

请试试这个:

使用两个 tr 标签并在第一个 - 图像 - ,下一个 - 名称 -

【讨论】:

  • 这似乎有效。不过,问题是我每行只会出现一张图片,除非我想出一个解决方法(我可能会这样做,但如果可以避免的话,我宁愿不这样做)。
猜你喜欢
  • 2013-05-17
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
  • 2015-09-06
  • 2011-10-03
相关资源
最近更新 更多