前言

  • CSS3
  • 文字溢出,显示省略符号需要区分情况进行处理:可分为单行和多行的情况。

单行文字溢出

假设有这样的需求,如图:

那么可以用如下代码实现:

<!DOCTYPE html>
<html>
<head>
<style>
div.test
{white-space:nowrap;
width:12em;
overflow:hidden;
text-overflow:ellipsis;
border:1px solid #000000;
}
</style></head><body><p>div中完整的内容为 "文字溢出说三遍文字溢出说三遍文字溢出说三遍" :</p><div class="test">文字溢出说三遍文字溢出说三遍文字溢出说三遍</div></body>
</html>

实现功能的核心代码为:

div.test
{white-space:nowrap;
width:12em;
overflow:hidden;
text-overflow:ellipsis;
border:1px solid #000000;
}

说明:

  • white-space:nowrap;含义为段落中的文本不进行换行
  • width:12em;含义为div的宽度,目的是让文字显示不全(只能显示12个文字)
  • overflow:hidden;含义为溢出的部分就不显示了
  • text-overflow:ellipsis;含义为显示省略符号来代表被修剪的文本。

这些组合到一起的含义为:当文字溢出时,显示省略号。

多行文字溢出

需求是防不胜防的,有可能会遇到这样的需求:文字只显示3行,溢出文字用省略号代表,如图:

那么可以用如下代码实现:

<!DOCTYPE html>
<html>
<head>
<style>
div.test
{width:5em;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
border:1px solid #000000;
}
</style></head><body><p>div中完整的内容为 "文字溢出说三遍文字溢出说三遍文字溢出说三遍" :</p><div class="test">文字溢出说三遍文字溢出说三遍文字溢出说三遍</div></body>
</html>

实现功能的核心代码为:

div.test
{width:5em;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
border:1px solid #000000;
}

说明:

  • width:5em;规定div的宽度,目的是让文字显示行数超过3行(一行只能显示5个文字)
  • overflow:hidden;含义为溢出的部分就不显示了
  • display: -webkit-box;含义为将对象作为弹性伸缩盒子模型显示 。但,这是chrome/safari(-webkit)浏览器的私有属性。出了chrome/safari浏览器,可能会不好用,可能会不好用,可能会不好用。
  • -webkit-box-orient: vertical;含义为垂直排列,方向是从上向下。
  • -webkit-line-clamp: 3;含义为显示3文字。相当于变相的设置高度。

这些组合到一起的含义为:文字只显示3行,溢出文字用省略号代表。

处理英文时,需要加点料

如果用上面的方法处理英文时,当遇到长单词时会失效,比如这种:

<!DOCTYPE html>
<html>
<head>
<style>
div.test
{width:5em;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
border:1px solid #000000;
}
</style></head><body><p>div中完整的内容为 "wo shi henchanghenchangdedanci wo shi henchanghenchangdedanci wo shi henchanghenchangdedanci" :</p><div class="test">wo shi henchanghenchangdedanci wo shi henchanghenchangdedanci wo shi henchanghenchangdedanci</div></body>
</html>


这时需要添加上下面的代码:

word-wrap:break-word;
word-break:break-all;

说明:

  • word-wrap:break-word;含义为不得以时,将长单词(也可以是URL)从内部进行换行
  • word-break:break-all;含义为不讲条件的将长单词(也可以是URL)从内部进行换行

word-break:break-all;

div.test
{width:5em;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
word-break:break-all;
border:1px solid #000000;
}

word-wrap:break-word;

div.test
{width:5em;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
word-wrap:break-word;
border:1px solid #000000;
}

使用clamp.js也可以处理文字溢出

略。

再说一下多行文字溢出

不加overflow: hidden;

指定高度

div.test
{width:5em;
height:10em;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
border:1px solid #000000;
}

推荐的写法

div.test
{width:5em;
overflow: hidden;
display: -webkit-box;
display: -moz-box;
display: box;
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
box-orient: vertical;
-webkit-line-clamp: 3;
-moz-line-clamp: 3;
line-clamp: 3;
word-wrap:break-word;
word-break:break-all;
}

说明:

  • -moz代表firefox浏览器私有属性,-ms代表IE浏览器私有属性,-webkit代表chrome/safari私有属性,-o代表opera私有属性私有属
  • display: -webkit-box; display: -moz-box; display: box; 含义为支持firefox、chrome/safari、CSS3标准(万一浏览器都支持CSS3了呢,所以放上display: box;吧)。
  • line-clamp: 3;网上说这个属性CSS3中未定义。万一CSS4中有呢,还是先写上吧。

全文完。

参考

html在线运行https://www.runoob.com/runcode
https://www.w3school.com.cn/cssref/pr_text-overflow.asp
https://www.w3school.com.cn/cssref/pr_text_white-space.asp
https://www.cnblogs.com/linsimei/p/7273353.html
https://blog.csdn.net/u010651696/article/details/99291677
https://www.cnblogs.com/ldlx-mars/p/6972734.html
https://blog.csdn.net/chensonghuiyuan/article/details/49204747
https://blog.csdn.net/qq_26983555/article/details/80175428

【css】文字溢出,显示省略符号(...)相关推荐

  1. css 文字溢出...显示,hover时显示隐藏文字

    1.文字溢出隐藏并...显示 .tem_content_row{ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } 2 ...

  2. CSS 文字溢出显示省略号

    溢出显示省略号的代码:其中 1 是行数. overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-c ...

  3. CSS 多行文字溢出显示省略号效果

    .box1{width: 100px;/* height: 100px; */border: 1px solid #ccc;overflow: hidden;text-overflow: ellips ...

  4. css文字溢出部分在另一个div显示(代码篇)

    css文字溢出部分在另一个div显示 博主博客: 前端代码:html.css(图文混排)文字环绕 - 案例篇 以上就是关于 " css文字溢出部分在另一个div显示(代码篇) " ...

  5. HTML+CSS:移动端分辨率、视口、Flex布局、文字溢出显示省略号、溢出两行显示省略号

    文章目录 一.分辨率分类 二.视口 三.Flex布局 3.1 justify-content 主轴对齐方式 3.2 align-items 侧轴的对齐方式 3.3 伸缩比 flex:value; 3. ...

  6. CSS 文字溢出部分用省略号代替

    1. 单行文字溢出省略 只需添加三行代码即可: overflow: hidden; /* 超出的文本隐藏 */ text-overflow: ellipsis; /* 显示省略符号来代表被修剪的文本. ...

  7. qtreewidgetitem 文字内存太长换行_table文字溢出显示省略号问题

    每日金句 『专注做一件事』2009 年的<麻省理工科技评论>(MIT TechnologyReview)中有一篇文章写道,人脑的带宽只有区区60比特/ 秒,是(那个年代)上网带宽的十万分之 ...

  8. table文字溢出显示省略号问题

    每日金句 『专注做一件事』 2009 年的<麻省理工科技评论>(MIT TechnologyReview)中有一篇文章写道,人脑的带宽只有区区60比特/ 秒,是(那个年代)上网带宽的十万分 ...

  9. css文本溢出显示省略号

    1.单行文本溢出显示省略号 overflow: hidden;(文字长度超出限定宽度,则隐藏超出的内容) white-space: nowrap;(设置文字在一行显示,不能换行) text-overf ...

最新文章

  1. Python学习笔记-DNS处理模块dnspython
  2. 一步一步实现iOS QQ第三方登录
  3. 下雨天我叫了顿外卖,就成了人渣?
  4. 在Xcode6中搭建Python开发环境
  5. 登陆窗体相关的控件 1124
  6. MANet:盲图像超分辨率中空间变异核估计的互仿射网络(ICCV 2021)
  7. 选择排序java从小到大代码_java中选择排序与归并排序的内容,详细解析
  8. 在MyEclipse(2015)中上传项目到github的步骤(很详细)
  9. 实验一缓冲区溢出漏洞实验
  10. macOS平台安装metasploit
  11. Python编程——函数
  12. smartsvn 使用
  13. java中输出日历_Java:输入年份和月份打印出相应的日历表
  14. 腾讯地图 周边 poi 搜索及参数配置
  15. Hog源码注释(hog.cpp的注解)
  16. 基于android的个人理财软件 android stu_Android聊天软件开发(基于网易云IM即时通讯)——注册账号(二)...
  17. ERROR: ORA-12547: TNS:lost contact
  18. 如何正确地向领导汇报工作?
  19. Phonics 自然拼读法 ar er ir ur or 元音字母组合 Teacher:Lamb
  20. vb/vb.net原创文章精粹(4)

热门文章

  1. Message,MessageQueue,Looper,Handler详解+实例
  2. 深入浅出javascript(二)函数和this对象
  3. 网络安全系列之三十五 缓冲区溢出
  4. 项目正式环境是双机,对外的访问地址是虚拟地址,在登录门户的时候,会等待15秒,才能进入门户...
  5. ruby 安装和管理
  6. Tomcat5配置mysql4数据源
  7. Druid 配置_配置WebStatFilter
  8. 百度技术研发笔试题目
  9. java 三种将list转换为map的方法详解
  10. soapui模拟桩mockservice---模拟后台服务器