截断表格内跨度内的文本

时间:2013-05-17 22:07:28

标签: html css html-table truncate ellipsis

我有一个表设置来完美地截断文本....直到我将该表中的文本包装成div。以JSFiddle为例:http://jsfiddle.net/3DKMJ/

这适用于截断单元格中的文本:

<table>
  <tr>
    <td>Text</td>
  </tr>
</table>

这不能用于截断单元格中的文本:

<table>
  <tr>
    <td><div>Text</div></td>
  </tr>
</table>

这是我的css:

table {border:1px solid #000; width:100px;table-layout: fixed;}
td { width:100px;white-space:nowrap; overflow:hidden; text-overflow: ellipsis; }

关于div的事情是它仍然阻止文本包装,文本只是隐藏,但是我设置为显示的省略号不显示附加的div。

当表格中有div时,有什么想法可以让它工作吗?

[编辑]如上所述,我可以添加td, td div {,这将有效。我发布后意识到这一点,我的问题似乎更具体。我实际上有一个跨度显示为内联块。我认为这是导致问题的块部分,但我想这是一个内联块的跨度。看到这个上升的小提琴:http://jsfiddle.net/P2PZW/2/

2 个答案:

答案 0 :(得分:7)

您可以对相关的display:inline;元素使用div

jsFiddle here.


回复问题编辑:

display:inline上使用display:inline-block代替td span

jsFiddle here.


回复评论:

如果你真的需要保留display:inline-block,你可以这样做:

td span {
   display:inline-block; 
   text-overflow:ellipsis;
   overflow:hidden; 
   width:100%;
}

jsFiddle here.

答案 1 :(得分:2)

尝试

td, td div { width:100px;white-space:nowrap; overflow:hidden; text-overflow: ellipsis; }

代替

td { width:100px;white-space:nowrap; overflow:hidden; text-overflow: ellipsis; }