CSS文本溢出 - 如果文本延伸(n)行,则应用省略号

时间:2011-09-24 17:59:12

标签: css ellipsis

我正在使用以下代码来防止文本溢出到新行:

.info-box{
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden; 
  height: 3em;
  width: 300px;
  font-size: 1em;
  line-height: 1em;
}

这正如预期的那样有效,但此框中有三行的空间。如果文本超出第三行,我如何命令浏览器应用省略号?或者文本溢出仅适用于一个?

如果我需要JS,我不会打扰。

2 个答案:

答案 0 :(得分:5)

你可以用这样的伪造它。

<span>...</span>的开头添加div

<div class="info-box"><span>...</span>Lorem ipsum dolar etc.</div>

在你的CSS中

  1. 摆脱nowraptext-overflow

  2. 添加一些padding-right

  3. span放在右下角。

  4. <强> CSS

    .info-box{
        overflow:hidden;  
        height: 3em;
        width: 300px;
        font-size: 1em;
        line-height: 1em;
        padding-right:20px;
    }
    
    .info-box span{
        position:relative;
        top:31px;
        left:297px;
        display:inline-block;
    }
    

    工作示例: http://jsfiddle.net/jasongennaro/UeCsk/

    fyi ...左上角会有一个小间隙,省略号应该是(因为我们使用的是position:relative;

    fyi 2 ...只要您调整topleft,这应该适用于您想要的许多行(您在问题中提到了三行)。

答案 1 :(得分:0)

我知道这是一个老问题,但我发现了这个问题,它对我来说很好。

https://codepen.io/martinwolf/pen/qlFdp

    @import "compass/css3";

/* Martin Wolf CodePen Standard */

@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700);

* {
  margin: 0;
  padding: 0;
  @include box-sizing(border-box);
}

body {
  padding: 3em 2em;
  font-family: 'Open Sans', Arial, sans-serif;
  color: #cf6824;
  background: #f7f5eb;
}

/* END Martin Wolf CodePen Standard */


$font-size: 26px;
$line-height: 1.4;
$lines-to-show: 3;

h2 {
  display: block; /* Fallback for non-webkit */
  display: -webkit-box;
  max-width: 400px;
  height: $font-size*$line-height*$lines-to-show; /* Fallback for non-webkit */
  margin: 0 auto;
  font-size: $font-size;
  line-height: $line-height;
  -webkit-line-clamp: $lines-to-show;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}