假设我在表格中的列是id
、name
、description
和phone
。该description
列是 1-255 个字符,但 id 最多只有 3 个字符。
我希望列的大小适当,而不是每列的大小相同。description
当窗口太小而无法完全容纳内容时,我希望该列溢出到省略号。
table-layout:fixed;
是进行text-overflow: ellipsis;
工作的标准方法,但它将所有列的大小调整为相同的大小。我宁愿保持宽度auto
而不是固定的。
你能帮我吗?
这是我的jsFiddle:http: //jsfiddle.net/RQhkk/1/
这是我正在处理的屏幕截图:
请注意如何Table 1
使所有列的大小相同?那是糟糕的。
请注意如何Table 2
根据内容调整列的大小?那挺好的。除非内容太长:Table 3
. 然后就不合适了。在那种情况下,我希望它溢出到省略号。
这是我的 html 表格和 css 代码:
<div id="t1">
<table>
<thead>
<tr>
<th>id</th>
<th>name</th>
<th class="ellipsis">description</th>
<th>phone</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>alpha</td>
<td class="ellipsis">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</td>
<td>555-555-5555</td>
</tr>
<tr>
<td>2</td>
<td>beta</td>
<td class="ellipsis">Sed et nulla neque.</td>
<td>555-555-5555</td>
</tr>
<tr>
<td>3</td>
<td>gamma</td>
<td class="ellipsis">Morbi imperdiet neque ut lorem rhoncus fermentum.</td>
<td>555-555-5555</td>
</tr>
</tbody>
</table>
</div>
<style>
#t1 table {
table-layout:fixed;
width:100%;
}
#t1 td {
white-space: nowrap;
}
#t1 td.ellipsis {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
word-break: break-all;
word-wrap: break-word;
}
</style>
如果我删除table-layout: fixed;
列宽是您所期望的 - 根据内容调整大小。不幸的是,如果没有固定的布局,我就无法让省略号工作。我哪里错了?