【问题标题】:Vertical align after wrapping text换行后垂直对齐
【发布时间】:2011-10-14 09:29:42
【问题描述】:

我有一个包含 2 列的表格列表。

列表宽度是固定的。
第一列包含文本换行(如果为长)。
第二列将包含一个图像(示例是文本)

我想让第二个 TD 在中间和第一个 TD 附近垂直对齐,如果太长,文本会换行。

像这样:
..................................................... ...
|管理 | |
|利用者   | coucou                  |
..................................................... ...
|管理 |凑凑                        |
..................................................... ...
|BLA bla bla bla bla     | |
|bla bla bla bla bla bla |coucou     |
bla bla bla bla bla        | |
..................................................... ...

样本: http://jsfiddle.net/3db8U/

问题出在我列表的第一行

【问题讨论】:

    标签: javascript html css html-table alignment


    【解决方案1】:

    听起来您可能希望第二个单元格(带有图像)与顶部垂直对齐?

    您可以像这样将第二个td 样式设置为vertical-align:top

    <tr cellpadding="0" >
        <td>...</td>
        <td style="vertical-align:top">
            <a href="#sub5-1">coucou</a>
        </td>
    </tr>
    

    jsfiddle

    【讨论】:

    • 不,由于列表的最大宽度,我希望第二个单元格垂直对齐到中间并靠近第一个单元格并带有换行文本
    【解决方案2】:

    如果第一列的文本也应该在中间,使用这个:

    table { table-layout:fixed; }
    table td { vertical-align:middle; word-wrap:break-word; }
    

    否则,也给它一个类并像这样覆盖:

    table td.firstcolumn { vertical-align:top; }
    

    或使用:first-child 选择器:(但浏览器对此的支持仍然非常稀缺)

    table td:first-child { vertical-align:top; }
    

    【讨论】:

    • 我想将第二个TD在中间垂直对齐第一列附近。
    • 它不起作用。我用你的代码改变了,但它什么也没改变 --> jsfiddle.net/3db8U/8 。我希望第二个文本在中间,而不是在第一个文本的顶部和附近
    猜你喜欢
    • 2015-01-17
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多