line-clamp CSS3属性—— line-clamp控制文本行数

转自:https://www.cnblogs.com/jing-tian/p/11048853.html#_label0

 

CSS3属性—— line-clamp控制文本行数

======

正文

说明:

限制在一个块元素显示的文本的行数。

-webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。

为了实现该效果,它需要组合其他外来的WebKit属性。常见结合属性:

  • display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
  • -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
  • text-overflow,可以用来多行文本的情况下,用省略号“...”隐藏超出范围的文本 。

今天接到优化需求,帖子列表里的内容要求缩略至3行,并带‘…’省略号

复制代码
 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title>cline-clamp</title>
 6     <style>    
 7             .box{
 8                 width: 200px;
 9                 height: 300px;
10                 border:1px solid black;
11             }
12             p{
13                  display: -webkit-box;
14                  -webkit-box-orient: vertical;
15                   -webkit-line-clamp: 4;            /*设置p元素最大4行,父元素需填写宽度才明显*/
16                   text-overflow: ellipsis;
17                   overflow: hidden;
18                  /* autoprefixer: off */
19                  -webkit-box-orient: vertical;
20                   /* autoprefixer: on */
21                   /*因为代码环境的关系-webkit-box-orient被过滤掉了 autoprefixer 这个关键字可以免除被过滤的动作*/
22 
23 
24             }
25     </style>
26 </head>
27 
28 <body>
29 <div class="box">
30         <p> static:对象遵循常规流。top,right,bottom,left等属性不会被应用。 relative: 对象遵循常规流,并且参照自身在常规流中的位置通过top,right,bottom,left属性进行偏移时不影响常规流中的任何元素。 absolute:对象脱离常规流,使用top,right,bottom,left等属性进行绝对定位,</p>
31 </div>
32 </body>
33 </html>
复制代码

效果如下:

    

如果你标签内的是英文,英文是不会自动换行的,所以你需要让他自动换行添加如下代码即可:

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

当然也可以使用插件clamp.js

======

正文

说明:

限制在一个块元素显示的文本的行数。

-webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。

为了实现该效果,它需要组合其他外来的WebKit属性。常见结合属性:

  • display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
  • -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
  • text-overflow,可以用来多行文本的情况下,用省略号“...”隐藏超出范围的文本 。

今天接到优化需求,帖子列表里的内容要求缩略至3行,并带‘…’省略号

复制代码
 1 <!DOCTYPE HTML>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title>cline-clamp</title>
 6     <style>    
 7             .box{
 8                 width: 200px;
 9                 height: 300px;
10                 border:1px solid black;
11             }
12             p{
13                  display: -webkit-box;
14                  -webkit-box-orient: vertical;
15                   -webkit-line-clamp: 4;            /*设置p元素最大4行,父元素需填写宽度才明显*/
16                   text-overflow: ellipsis;
17                   overflow: hidden;
18                  /* autoprefixer: off */
19                  -webkit-box-orient: vertical;
20                   /* autoprefixer: on */
21                   /*因为代码环境的关系-webkit-box-orient被过滤掉了 autoprefixer 这个关键字可以免除被过滤的动作*/
22 
23 
24             }
25     </style>
26 </head>
27 
28 <body>
29 <div class="box">
30         <p> static:对象遵循常规流。top,right,bottom,left等属性不会被应用。 relative: 对象遵循常规流,并且参照自身在常规流中的位置通过top,right,bottom,left属性进行偏移时不影响常规流中的任何元素。 absolute:对象脱离常规流,使用top,right,bottom,left等属性进行绝对定位,</p>
31 </div>
32 </body>
33 </html>
复制代码

效果如下:

    

如果你标签内的是英文,英文是不会自动换行的,所以你需要让他自动换行添加如下代码即可:

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

当然也可以使用插件clamp.js

猜你喜欢

转载自www.cnblogs.com/coolSome/p/11200107.html