如何获取非固定表格单元格以显示省略号

时间:2018-08-13 22:46:44

标签: css html5

对于您的某些CSS向导,我有一个有趣的CSS问题。我有一个包含用户生成内容的表,并且我想将长列限制为最大宽度。该表格不是固定的布局,列的宽度也由用户指定,但默认情况下应具有最大宽度。

<table>
  <thead>
    <tr><td>Header 1</td><td>Header 2</td></tr>
  </thead>
  <tbody>
    <tr><td>Text</td><td>1</td></tr>
    <tr><td>Text</td><td>2</td></tr>
    <tr><td>Long Text Here</td><td>3</td></tr>
  </tbody>
</table>

我在标题的CSS类中添加了overflow: hiddenwhite-space: nowraptext-overflow: ellipsis,在上面的html中,文本“ Long Text Here”将该列的宽度压出。但这使得列宽只能是该文本长度或更长。

除了使用固定版式之外,我还能做什么来缩小单元并显示椭圆?

谢谢!

2 个答案:

答案 0 :(得分:1)

一个简单的选择是在列上设置最大宽度,这样一些非常长的条目就不会使其变得可笑地宽。例如,对第一列执行此操作:

td:first-child {
  max-width: 5em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
<table>
  <thead>
    <tr><td>Header 1</td><td>Header 2</td></tr>
  </thead>
  <tbody>
    <tr><td>Text</td><td>1</td></tr>
    <tr><td>Text</td><td>2</td></tr>
    <tr><td>Really, Ridiculously Long Text Here</td><td>3</td></tr>
  </tbody>
</table>

(您可以使用:nth-child()或类来限制其他列。)

此解决方案要求在CSS中设置最大宽度,但是,这对于动态内容可能不是很有用。相反,您可以直接在HTML的style属性中进行设置,使用JavaScript或模板系统更容易做到这一点:

td:first-child, th:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
<table>
  <thead>
    <tr><th style="max-width: 5em">Header 1</th><th>Header 2</th></tr>
  </thead>
  <tbody>
    <tr><td style="max-width: 5em">Text</td><td>1</td></tr>
    <tr><td style="max-width: 5em">Text</td><td>2</td></tr>
    <tr><td style="max-width: 5em">Really, Ridiculously Long Text Here</td><td>3</td></tr>
  </tbody>
</table>

答案 1 :(得分:0)

嗨,我不确定你是否要问这样的事情

https://jsfiddle.net/MAXXALANDER/o6x1nt93/15/

in Particle.__subclasses__()