当前位置: 首页 > 面试题库 >

在多行文字上加上省略号

卢杰
2023-03-14
问题内容

是否有解决方案,以div的最后一行在流体高度(20%)处添加省略号?

-webkit-line-clamp在CSS中找到了该函数,但在我的情况下,行号取决于窗口大小。

p {

    width:100%;

    height:20%;

    background:red;

    position:absolute;

}


<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed dui felis. Vivamus vitae pharetra nisl, eget fringilla elit. Ut nec est sapien. Aliquam dignissim velit sed nunc imperdiet cursus. Proin arcu diam, tempus ac vehicula a, dictum quis nibh. Maecenas vitae quam ac mi venenatis vulputate. Suspendisse fermentum suscipit eros, ac ultricies leo sagittis quis. Nunc sollicitudin lorem eget eros eleifend facilisis. Quisque bibendum sem at bibendum suscipit. Nam id tellus mi. Mauris vestibulum, eros ac ultrices lacinia, justo est faucibus ipsum, sed sollicitudin sapien odio sed est. In massa ipsum, bibendum quis lorem et, volutpat ultricies nisi. Maecenas scelerisque sodales ipsum a hendreritLorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed dui felis. Vivamus vitae pharetra nisl, eget fringilla elit. Ut nec est sapien. Aliquam dignissim velit sed nunc imperdiet cursus. Proin arcu diam, tempus ac vehicula a, dictum quis nibh. Maecenas vitae quam ac mi venenatis vulputate. Suspendisse fermentum suscipit eros, ac ultricies leo sagittis quis. Nunc sollicitudin lorem eget eros eleifend facilisis. Quisque bibendum sem at bibendum suscipit. Nam id tellus mi. Mauris vestibulum, eros ac ultrices lacinia, justo est faucibus ipsum, sed sollicitudin sapien odio sed est. In massa ipsum, bibendum quis lorem et, volutpat ultricies nisi. Maecenas scelerisque sodales ipsum a hendrerit.</p>

问题答案:

如果要将省略号(…)应用于一行文本,CSS可以通过该text-overflow属性使此操作变得容易。仍然有些棘手(由于所有要求,请参阅下文),但text-overflow使之成为可能且可靠。

但是,如果要在多行文本上使用省略号(如此处的情况),那么不要指望有什么乐趣。CSS没有执行此操作的标准方法,变通办法是命中注定的。

单行文字的省略号

使用text-overflow,可以将省略号应用于一行文本。必须满足以下CSS要求:

  • 必须有一个width,max-width或flex-basis
  • 一定有 white-space: nowrap
  • 必须具有overflow除visible
  • 必须为display: block或inline-block (或功能等效项,例如弹性商品)。

所以这将工作:

p {
  width: 200px;
  white-space: nowrap;
  overflow: hidden;
  display: inline-block;
  text-overflow: ellipsis;
  border: 1px solid #ddd;
  margin: 0;
}
<p>
  This is a test of CSS <i>text-overflow: ellipsis</i>. 
  This is a test of CSS <i>text-overflow: ellipsis</i>. 
  This is a test of CSS <i>text-overflow: ellipsis</i>. 
  This is a test of CSS <i>text-overflow: ellipsis</i>.
  This is a test of CSS <i>text-overflow: ellipsis</i>.
  This is a test of CSS <i>text-overflow: ellipsis</i>.
</p>

jsFiddle版本

但是,尝试删除width,或者将overflow默认值设置为visible,或者删除white-space: nowrap,或者使用除块容器元素(AND)之外的其他内容,省略号都失败了。

这里的一大收获:text-overflow: ellipsis对多行文字没有影响。(white-space: nowrap仅凭此要求就消除了这种可能性。)



 类似资料:
  • 有没有办法在流体高度为20%的div中的最后一行添加省略号? 我在CSS中找到了函数,但在我的例子中,行号将取决于窗口大小。 我用这个例子来说明这个问题。https://jsfiddle.net/96knodm6/

  • 问题内容: 我知道您可以使用CSS规则组合来在溢出时(不超出父级的范围)使文本以省略号(…)结尾。 是否有可能(随意说,不)达到相同的效果,但让文本换行超过一行? 如您所见,当文本的宽度大于div的宽度时,文本以省略号结尾。但是,仍然有足够的空间用于文本换行并继续。这会被中断,以使省略号起作用。 有任何想法吗? PS:没有JS解决方案,如果可能的话,使用纯CSS。 问题答案: 我不确定您是否看过

  • 我一直在使用空格:不换行,文本溢出:省略号和溢出:隐藏的CSS属性为多行文本创建省略号截断。但是,这在使用弹性框时不起作用。 使用flex时,text-overflow:省略号似乎总是将flex项的高度截断为一行。 对于多行文本,是否可以使用flex和css省略号截断的组合? 我可以让它在单行截断的情况下工作。手动设置高度与flex空格:nowrapp不起作用。

  • 本文向大家介绍如何实现多行元素的文本省略号?相关面试题,主要包含被问及如何实现多行元素的文本省略号?时的应答技巧和注意事项,需要的朋友参考一下 参考回答:

  • 本文向大家介绍C#实现根据字节数截取字符串并加上省略号的方法,包括了C#实现根据字节数截取字符串并加上省略号的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#按字节数截取字符串并在后面加上省略号...的方法,这是一个自定义的C#函数,函数的使用说明如下: 函数代码如下: 以下所示示例也是根据字节数截取字符串的,只是这个函数后面不加省略号……

  • 无论字符多少,最多显示俩行,字数超出俩行,第二行行首用省略号显示,不足俩行的,显示全部字符。 如下