【问题标题】:Truncating text within a span within a table截断表格内跨度内的文本
【发布时间】:2013-05-13 04:28:49
【问题描述】:

我有一个表格设置来完美地截断文本......直到我将该表格中的文本包装到一个 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/

【问题讨论】:

    标签: html css html-table truncate ellipsis


    【解决方案1】:

    您可以在有问题的div 元素上使用display:inline;

    jsFiddle here.


    回复问题编辑:

    在您的td span 上使用display:inline 而不是display:inline-block

    jsFiddle here.


    回复 cmets:

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

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

    jsFiddle here.

    【讨论】:

    • 但是对于这个场景,我需要使用内联块。内联不做同样的事情。也许这是不可能的?
    • @BlueCaret 为什么必须使用 inline-block?
    • 老实说,我能够解决这个问题,所以我不需要内联块,但我只是想在未来证明这一点,所以如果有人要向它添加内联块它仍然可以工作。
    • @BlueCaret 看看我的编辑,我也有办法让它保持内联块。
    • 我明白了。所以因为它是一个内联块,它也需要它的宽度。知道了。谢谢。
    【解决方案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; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-02
      相关资源
      最近更新 更多