• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > css实现多行文字截断效果

css实现多行文字截断效果

作者:qq_26780317 字体:[增加 减小] 来源:互联网 时间:2018-11-02

本文主要包含css实现多行文字截断效果等相关知识,qq_26780317希望在学习及工作中可以帮助到您

背景:在做响应式系统设计的时候,经常遇到需要对标题进行文字截取的效果,如下图所示:

一、先从单行文本截断入手

      一般,实现单行文本截断比较容易,使用文本溢出text-overflow:ellipsis;就可以实现单行文本截断了,示例如下:

div {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

   在单行文本截断的基础上,我们模拟多行文本,使用overflow:hidden进行省略;

<style>
height:40px;
line-height:20px;
overflow:hidden;
</style>
<p>希望是一个好东西,希望是一个好东西,也许是最好的,好东西是不会,希望是一个好东西,也许是最好的,
好东西是不会,希望是一个好东西,也许是最好的,好东西是不会</p>

  此情况,适用于多行列数已知,使用overflow:hidden进行省略,但是无法达到自适应多行,进行自动省略,并且没有省略号出现。

二、使用-webkit-line-clamp实现,适用于移动端

div {
    display: -webkit-box;
    overflow: hidden;
    -webkit-lin-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
}

 它需要和display、-webkit-box-orient和overflow结合使用:

 display:-webkit-box;必须结合的属性,将对象作为弹性伸缩盒子模型显示;

-webkit-box-orient;必须结合的属性,设置或检索伸缩盒对象的子元素的排列方式;

text-overflow:ellipsis;可选属性,可以用来多行文本的情况下,用省略号“...”隐藏超出范围的文本。

从效果上来看,它的优点有:

①响应式截断,根据不同宽度做出调整;

②文本超出范围才显示省略号,否则不显示省略号;

③游览器原生实现,所以省略号位置显示的刚好。

使用场景:多用于移动端页面,因为移动设备游览器更多是基于webkit内核,除了兼容性不好,实现截断的效果不错。(因为-webkit-line-clamp是一个不规范的属性,只有webkit内核的游览器才支持这个属性,像Firefox,IE游览器系统都不支持这个属性,游览器兼容性不好。)

三、定位元素实现多行文本截断

这种方法就是设置相对定位的容器高度,用包含省略号(...)的元素模拟实现,实现方式如下:

p {
    position: relative;
    line-height: 18px;
    height: 36px;
    overflow: hidden;
}
p::after {
    content: "...";
    font-weight: bold;
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 0 20px 1px 45px;
    /*为了展示更好的效果*/
    background: -webkit-gradient(linear,left top,right   top,from(rgba(255,255,255,0)),to(white),color-stop(50%,white));
    background: -moz-linear-gradient(to right,rgba(255,255,255,0),white 50%,white);
    background: -o-linear-gradient(to right,rgba(255,255,255,0),white 50%,white);
    background: -ms-linear-gradient(to right,rgba(255,255,255,0),white 50%,white);
    background: linear-gradient(to right,rgba(255,255,255,0),white 50%,white);    
}

  通过伪元素绝对定位到行尾并遮住文字,再通过overflow:hidden隐藏多余文字。

  从实现效果来看,它所具备的优点:

  ①兼容性好,对各大主流游览器有较好的支持;

  ②响应式截断,根据不同宽度做出调整。

  使用场景:文字内容较多,确定文字内容一定会超过容器的,那么选择这种方式不错。

  参考博客:纯CSS实现多行文字截断  https://segmentfault.com/a/1190000016879657

                    黑科技:CSS定制多行省略  https://segmentfault.com/a/1190000008649988

您可能想查找下面的文章:

相关文章

  • 2017-08-06css 文字按钮实现样式submit按钮以文本的形式显示出来
  • 2017-08-06div+css实现圆角即网页上常用的圆角效果
  • 2017-08-06纯css3无js实现的Android Logo(有简单动画)
  • 2017-08-06css中的四种定位方式示例介绍
  • 2017-08-06ie6~ie9 hack兼容写法 已测试
  • 2017-08-14文字超过div用省略号
  • 2017-08-0699款高质量免费(X)HTML/CSS模板收集
  • 2017-08-06如何用float配合position:relative实现居中
  • 2017-08-06CSS3中颜色线性渐变实战
  • 2017-08-06利用负边距技术制作自适应宽度布局的网页

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • css中让元素隐藏的多种方法
    • CSS3的Flexbox布局的简明入门指南
    • CSS hack 针对IE6,IE7,firefox显示不同效果
    • 关于CSS中 星号*的使用介绍
    • 常见CSS与HTML使用误区详解
    • 在网页标题栏上和收藏夹显示网站logo的实现方法
    • 深入浅析css3 中display box使用方法
    • 用ul、li标签创建css横向导航菜单示例
    • 网页设计基础教程(一):构图篇
    • 实例教程 纯CSS3打造非常炫的加载动画效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有