使用 span 来显示省略号而不是 div

Posted

技术标签:

【中文标题】使用 span 来显示省略号而不是 div【英文标题】:Use a span for showing the elipses instead of div 【发布时间】:2019-10-23 00:28:29 【问题描述】:

我正在尝试使用跨度来溢出文本。

.jdName 
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
<td>
    <span className="jdName">Some Name with more characters</span>
</td>

这里是td 已经有一个固定的宽度。所以,我没有给出跨度。

但它没有为此显示任何省略号。

我必须为此使用 div。谁能帮助我如何使用 span 而不是 div?

【问题讨论】:

display:block 还是 inline-block? @TemaniAfif 它必须是display: block @xmaster 都接受溢出属性并且可以正常工作(例如:jsfiddle.net/euh6n20x)然后它将取决于代码,因为两者都不会给出相同的结果。 @TemaniAfif 嗯,你是对的 text-overflow: ellipsis not working的可能重复 【参考方案1】:

这里有两个因素在起作用。首先,&lt;span&gt; 具有内联布局;默认情况下,某些 CSS 属性不适用于它。其次,&lt;table&gt;&lt;td&gt; 有自己的一套布局怪癖。

通常,如果你给span 一个块布局(将display 设置为inline-blockblock 等等)和宽度(几乎任何东西除了 @987654329 @),省略号就会出现。

&lt;td&gt; 元素是特殊情况。 在 SO 问题 td widths, not working? 中得到了更好的解释。

td,
.test-div 
  width: 100px;


.jdName 
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
  width: 100%;
  border: 1px solid red;
<table>
  <tr>
    <td>
      <span class="jdName">Some Name with more characters</span>
    </td>
  </tr>
</table>

<div class="test-div">
  <span class="jdName">Some Name with more characters</span>
</div>

【讨论】:

以上是关于使用 span 来显示省略号而不是 div的主要内容,如果未能解决你的问题,请参考以下文章

span标签中显示固定长度,超出部分用省略号代替,光标放到文字上显示全部

DIV内容超出长度显示省略号,鼠标移上自动显示全部内容(EasyUI DataGrid)

div中文字溢出用省略号代替,最后面加上[详情] 求解

div+css怎么显示两行或三行文字,然后多出的部分省略号代替??

如何使一个DIV中的多余字段用省略号来代替,并且在鼠标移到该div上时省略号所代替的字段全部显示出来?

js实现字数超出宽度自动显示省略号?