CSS实现单行与多行文字省略(truncation)

在上一篇文章小div布局之卡片堆叠(card-stacking)中有多行文字溢出省略的效果,这篇文章就对这种效果(包括单行文字溢出省略)的实现做个简单的记录,以防自己忘记。具体来说,就是要实现这种文字排布效果。

html代码如下:

 1 <div class="container">
 2   <div class="box">
 3     <div class="box-content">
 4       <h5 class="box-content-title">A公司</h5>
 5       <div class="box-content-desc singleline">A公司是B公司的重要战略伙伴,致力于为C行业提供一站式 解决方案,目前处于高速发展期。公司旗下有四个事业部,业务主要涵盖以下三个方面,2016年公司 年营业额达到100万元。
 6       </div>
 7       <div class="box-content-desc multiline">A公司是B公司的重要战略伙伴,致力于为C行业提供一站式 解决方案,目前处于高速发展期。公司旗下有四个事业部,业务主要涵盖以下三个方面,2016年公司 年营业额达到100万元。
 8       </div>
 9       <a class="box-content-link" href="javascript:void(0);">查看 >></a>
10     </div>
11   </div>
12 </div>

通用的css样式如下:

 1 .container {
 2   margin: 50px auto;
 3   width: 328px;
 4 }
 5
 6 .box {
 7   background: #f7f7f7;
 8 }
 9
10 .box-content {
11   padding: 20px;
12 }
13
14 .box-content-title {
15   margin: 0 0 20px;
16 }
17
18 .box-content-desc {
19   color: #333;
20   font-size: 14px;
21   line-height: 1.5;
22   margin-bottom: 10px;
23   overflow: hidden;
24 }
25
26 .box-content-link {
27   color: #006ec8;
28   font-size: 14px;
29   text-decoration: none;
30 }

注意上面的 overflow: hidden; 要保留。

单行文字溢出省略:

1 .singleline{
2   text-overflow: ellipsis;
3   white-space: nowrap;
4 }

text-overflow属性规定了如何显示溢出的文字内容,它的属性值可以是elipsis(...)、clip(截断)、自定义的字符串,我在chrome试了下,发现自定义字符串不好用。

再看多行文字溢出省略:

1 .multiline {
2   display: -webkit-box;
3   text-overflow: ellipsis;;
4   -webkit-box-orient: vertical;
5   -webkit-line-clamp: 4;
6 }

可以看到这里用到了不规范的css写法,即,带webkit前缀的写法(webkit内核浏览器私有属性),还有就是用到了一些过时的写法,

display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;

这里就不多解释了(其实是解释不明白),多行省略的方法不太好。以后再研究其他比较好的方法吧。

ps: 刚看到这篇文章多行文本溢出显示省略号(…)全攻略,讲了下比较靠谱的方法。汗呀,这才是专业的前端~

参考:

text-overflow

box-orient

line-clamp

时间: 2024-10-11 00:36:54

CSS实现单行与多行文字省略(truncation)的相关文章

css 文本单行、多行超出省略

实现单行 .nowrap{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } 实现多行: display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; 关于css实现单行.多行省略标记:http://www.cnblogs.com/moutudou/p/7077705.html

单行和多行文字溢出省略

.text-ellipsis /* { 单行文字溢出省略 */ overflow: hidden; /* 溢出隐藏 */ text-overflow: ellipsis; /* 文字溢出省略 */ white-space: nowrap; /* 文字不换行 */ } .multiline-ellipsis { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webki

CSS文本单行或者多行超出区域省略号(...)显示方法

单行超出时,主要用到几个CSS属性: 1.text-overflow : clip | ellipsis ; clip : 不显示省略标记(...),而是简单的裁切ellipsis : 当对象内文本溢出时显示省略标记(...) 2.white-space: nowrap | normal | pre|pre-wrap|pre-line; normal :默认.空白会被浏览器忽略. pre:空白会被浏览器保留.其行为方式类似 HTML 中的 <pre> 标签. nowwrap:文本不会换行,文本

如何实现单行与多行文字的居中

在项目中遇到一个问题,在一个宽度为百分比形式设定宽度的div中,文字可能不多但是也可能较多,会超过一行.怎么才能做到不管1行还是2行3行,文字都可以上下左右居中呈现. 只需要这样设置css属性即可 div{ display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: center; justify-content: center;

Jquery : 上下滚动--单行 批量多行 文字图片翻屏【转】

原文发布时间为:2010-02-01 -- 来源于本人的百度文章 [由搬家工具导入] 注:如果和左右滚动一起使用,则会出现冲突 一单行滚动(ad:http://www.gz138.com) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml

移动端奇葩的多行文字省略隐藏

white-space: nowrap; 这个属性表示规定段落中的文本不进行换行: 在项目中font-size:0.6rem; text-overflow: ellipsis;(超出行用省略号...表示) 这样设置,查看box中的height发现高度是17px而不超出行宽,height高度18px这样导致 float:left 向左浮动不能对齐 所以这里做了一个解决办法设置 min-height值

单行、多行文字超出显示省略号

单行 display:inline-block/ block;overflow: hidden; text-overflow:ellipsis; white-space: nowrap;

jquery 文字滚动大全 scroll 支持文字或图片 单行滚动 多行滚动 带按钮控制滚动

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

div css每行文字显示一半 同时文字字体重叠显示不全解决方法

CSS DIV布局中出现单行或多行文字的每行文字内容不能显示全,上下行文字有一点点重叠现象,文字字体只显示一半解决方法,在低版本IE特别明显文字字体显示不全,在谷歌浏览器等高版本IE浏览器测试还好些. 新手布局时候特别爱出现DIV盒子里文字字体显示不完整,音乐沙发甚至上下行文字有一点重叠现象. css字体文字重叠显示不完整重叠字体字体文字重叠显示不完整同时有重叠重合效果截图 在DIV+CSS布局中造成这种字体显示不全,音乐沙发显示一半同时多行文字有一点点重叠情况原因:css行高小于CSS字体大小