如何让表格单元格在一行中显示尽可能多的文本,例如 GMail 和 Google Reader?

Posted

技术标签:

【中文标题】如何让表格单元格在一行中显示尽可能多的文本,例如 GMail 和 Google Reader?【英文标题】:How do you make table cells show as much text as fits in one line, like GMail and Google Reader? 【发布时间】:2011-08-25 06:14:47 【问题描述】:

制作表格(不一定使用表格标签)的最佳方式是什么没有换行?喜欢 Gmail 和 Google 阅读器。

我真的很喜欢这种展示信息的方式。可扩展的固定高度行是扫描数据列表的好方法,恕我直言。

【问题讨论】:

【参考方案1】:

见:http://jsfiddle.net/gtRnn/

<p>What is the best way *snip*</p>

p 
    border: 1px dashed #666;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis

每个属性都在做一些有用的事情:

white-space: nowrap 强制文本保持在一行。 overflow: hidden 停止 this。 text-overflow: ellipsis 适用于“所有浏览器”,except Firefox (support is planned) border 无缘无故。

【讨论】:

+1 表示text-overflow,虽然不是 100% 兼容浏览器。 感谢您的简单回答!【参考方案2】:

其他答案在表格中不起作用,如下所示:http://jsfiddle.net/gtRnn/8/ - 该链接还包含正确的方法。

解决方法是将表格上的table-layout 样式设置为fixed,并为每一列赋予一个百分比或绝对宽度。 table-layout: fixed; 告诉浏览器不要根据内容计算表格的宽度,而是根据给定每个单元格的显式宽度。

工作示例: http://jsfiddle.net/gtRnn/8/

代码:

<style type="text/css">
    .my-table 
        /* This is important for ellipsis to work in tables.
           Don't forget to explicitly set the widths on all columns. */
        table-layout: fixed;
        width: 100%;              /* The table must be given a width. */
    

    .overflow-ellipsis 
        overflow: hidden;        /* Ellipsis won't work without this. */
        text-overflow: ellipsis; /* The most important part */
    
</style>

<table border="1" class="my-table">
    <tr>
        <td >1.</td>
        <td  class="overflow-ellipsis">
            In this TD, wrapping still occurs if there is white space.
            ButIfThereIsAReallyLongWordOrStringOfCharactersThenThisWillNotWrapButUseEllipsis
        </td>
    </tr>
    <tr>
        <td >2.</td>
        <td  class="overflow-ellipsis" style="white-space:nowrap;">
            In this TD, wrapping will not occur, even if there is white space.
        </td>
    </tr>
</table>

混合百分比宽度和绝对宽度不能正常工作(至少在 Google Chrome 中)。

【讨论】:

【参考方案3】:

关键是overflow: hidden;white-space: nowrap;

<div style="width: 200px; overflow: hidden; white-space: nowrap;">some long text.............asdfasdf........</div>

【讨论】:

以上是关于如何让表格单元格在一行中显示尽可能多的文本,例如 GMail 和 Google Reader?的主要内容,如果未能解决你的问题,请参考以下文章

如何让一个单元格在ios中保存多个文本标签

在显示整个表格之前使用键盘时,单元格在静态表格中消失

Excel多行内容,合并单元格之后就只显示第一行内容,如何显示其他行?

添加表格视图单元格在 iOS 中不起作用?

表格视图单元格在整数格式时不显示数据

删除表格视图中第一行顶部的空格