css实现文本溢出显示省略号

单行文本

单行文本溢出显示省略号比较简单,主要就三行代码。

p {
    width: 300px;
    overflow: hidden;
    /*文本不会换行*/
    white-space: nowrap;
    /*当文本溢出包含元素时,以省略号表示超出的文本*/
    text-overflow: ellipsis;
  }

效果:

多行文本

  • 方法一
    对于多行文本,一种方法是使用webkit的css扩展属性,该方法适用于Safari、chrome和大多数移动端浏览器。
p {
    width: 300px;
    overflow: hidden;
    /*将对象作为弹性伸缩盒子模型显示*/
    display: -webkit-box;
    /*设置子元素排列方式*/
    -webkit-box-orient: vertical;
    /*设置显示的行数,多出的部分会显示为...*/
    -webkit-line-clamp: 3;
  }

效果:

  • 方法二
    使用伪元素实现,将伪元素放在最后一个字的上方,达到显示省略号的目的。该方法兼容性较好,但文字未超出的情况下也会出现省略号。
p {
    position: relative;
    line-height: 1.2em;
    max-height: 3.6em;
    width: 300px;
    /*设置文本为两端对齐*/
    text-align: justify;
    overflow: hidden;
  }
  
  p::after {
    content: "...";
    position: absolute;
    bottom: 0;
    right: 0;
    /*将省略号的大小设置为1个字体大小*/
    width: 1em;
    /*设置背景,将最后一个字覆盖掉*/
    background: #fff;
  }

效果:

p {
    width: 300px;
    max-height: 3em;
    text-align: justify;
    overflow: hidden;
}

// js部分代码
$(document).ready(function() {
  $("p").dotdotdot();
});

效果:

posted @ 2017-08-20 16:36  yangrenmu  阅读(262)  评论(0编辑  收藏  举报