首页 > Web开发 > 详细

文本多行省略号(CSS最优方案)

时间:2020-05-18 18:46:33      阅读:65      评论:0      收藏:0      [点我收藏+]

Float定位溢出隐藏

优点:

  • 纯CSS实现,性能好,不用js调优
  • 兼容性高
  • 多行省略,自动显示

缺点:

  • 单词截断

代码如下:

<div class="ellipses-div">
  <span class="ellipses-text">这是一段test字段,秋水共长天一色,落霞与孤鹜齐飞。这是一段test字段,秋水共长天一色,落霞与孤鹜齐飞。这是一段test字段,秋水共长天一色,落霞与孤鹜齐飞。这是一段test字段,秋水共长天一色,落霞与孤鹜齐飞。</span>
</div>

 

.ellipses-div{
  line-height: 20px;
  max-height: 40px;
  overflow: hidden;
  width: 300px;

  &:before {
    float: left;
    content: ‘‘;
    height: 40px;
    width: 22px
  }
  .ellipses-text{
    float: right;
    width: 100%;
    margin-left: -22px;
    // word-break: break-all;
  }
  &:after {
    float: right;
    content: ‘...‘;
    width: 22px;
    height: 20px;
    position: relative;
    left: 100%;
    transform: translate(-100%, -100%);
    padding-left: 8px;
  }

}

 

原理:

  • 首先在父元素DIV里面设置三个float定位的元素,A(偏移伪元素), B(包裹text的元素), C(省略号元素)。
  • A设置成左浮动,B,C设置右浮动,且B元素设置margin-left为负值,宽度100%, 使A,B重叠。
  • 当B元素超过设置的行数或者高度时,C元素另起一行左侧显示,配合绝对定位,使C元素定位到父元素DIV的右下角位置。
  • 当B元素没有超过设置的行数或者高度时,由于C元素绝对定位,肯定已经偏移出父元素DIV,自然不会显示了。

文本多行省略号(CSS最优方案)

原文:https://www.cnblogs.com/yinghuochongfighter/p/12912030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!