CSS3属性控制文本显示行数,溢出自动加省略号

[复制链接]
查看16 | 回复0 | 2024-3-9 14:24:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
语法:
text-overflow:clip |  ellipsis
默认值为clip 不显示省略标记
clip:当前对象内文本溢出时不显示省略标记,而是将溢出部分裁剪。
ellipsis:当对象内文本一处时显示省略标记(...)。

一、常见的单行文本溢出显示省略写法:

text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
  1. <!DOCTYPE html>
  2. <html>
  3.         <head>
  4.                 <meta charset="utf-8" />
  5.                 <title></title>
  6.         </head>
  7.         <style type="text/css">
  8.                 .p{
  9.                         width: 100px;
  10.                         height: 40px;
  11.                         line-height: 40px;
  12.                         text-overflow: ellipsis;    /*1*/
  13.                         overflow: hidden;           /*2*/
  14.                         white-space: nowrap;        /*3*/
  15.                           word-break: break-all;
  16.                 }
  17.         </style>


  18.         <body>
  19.                 <p class="p">多行文本溢出显示多行文本溢出显示多行文本溢出显示</p>
  20.         </body>
  21. </html>
复制代码
二、多行文本溢出

WebKit浏览器有一个-webkit-line-clamp的属性,用这个即可以实现webkit内核的浏览器、以及大部分移动端的多行文本溢出省略号;

display:-webkit-box;
-webkit-line-clamp: 3/*第几行裁剪*/
-webkit-box-orient:vertical;
  1. <!DOCTYPE html>
  2. <html>
  3.         <head>
  4.                 <meta charset="utf-8" />
  5.                 <title></title>
  6.         </head>
  7.         <style type="text/css">
  8.                 .p {
  9.                         height: 60px;
  10.                         line-height: 30px;
  11.                         width: 80px;
  12.                     overflow : hidden;
  13.                     text-overflow: ellipsis;
  14.                     display: -webkit-box;     /*1*/
  15.                     -webkit-line-clamp: 2;    /*2*//*第几行裁剪*/
  16.                     -webkit-box-orient: vertical;   /*3*/
  17.                 }
  18.         </style>
  19.         <body>
  20.                 <p class="p">多行文本溢出显示多行文本溢出显示多行文本溢出显示多行文本溢出显示多示</p>
  21.         </body>
  22. </html>
复制代码
三、其它浏览器的话就需要通过js实现:
  1. <!DOCTYPE html>
  2. <html>
  3.         <head>
  4.                 <meta charset="utf-8" />
  5.                 <title></title>
  6.         </head>
  7.         <style type="text/css">
  8.                 div{
  9.                         height: 60px;
  10.                 }
  11.                 p {
  12.                         line-height: 30px;
  13.                         width: 80px;
  14.                     margin: 0 auto;
  15.                 }
  16.         </style>
  17.         <body>
  18.                 <div id="div">
  19.                         <p id="p">多行文本溢出显示多行文本溢出显示多行文本溢行文本溢示</p>
  20.                 </div>
  21.         </body>
  22.         <script type="text/javascript">
  23.                         var eleH = document.getElementById("div").clientHeight;
  24.                 var pEle = document.getElementById("p");
  25.                 while(pEle.clientHeight > eleH) {
  26.                     pEle.innerText = pEle.innerText.replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "...");
  27.                 };
  28.         </script>
  29. </html>
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则