• CSS文本溢出显示省略号


    转:https://www.cnblogs.com/yzg1/p/5089534.html

    单行

    1     overflow:hidden;
    2     text-overflow:ellipsis;
    3     white-space:nowrap

    示例

    文本溢出显示省略号,文本溢出显示省略号,文

    多行

    1.直接用css属性设置(只有-webkit内核才有作用)

    语法

    1 overflow: hidden;
    2   text-overflow: ellipsis;
    3   display: -webkit-box;
    4   -webkit-line-clamp: 2;
    5   -webkit-box-orient: vertical;

    移动端浏览器绝大部分是WebKit内核的,所以该方法适用于移动端;

    • -webkit-line-clamp 用来限制在一个块元素显示的文本的行数,这是一个不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。

    • display: -webkit-box 将对象作为弹性伸缩盒子模型显示 。

    • -webkit-box-orient 设置或检索伸缩盒对象的子元素的排列方式 。

    • text-overflow: ellipsis 以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本。

    示例

    文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省

    2.利用伪类

    语法

     1 <div id="con">
     2   <span id="txt">文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略</span>
     3   <span class="t"></span>
     4 </div>
     5 <style>
     6 #txt{
     7   display: inline-block;
     8   height: 40px;
     9    250px;
    10   line-height: 20px;
    11   overflow: hidden;
    12   font-size: 16px;
    13 }
    14 .t:after{
    15   display: inline;
    16   content: "...";
    17   font-size: 16px;
    18     
    19 }
    20 </style>

    示例

    文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略

    3.利用绝对定位和padding;(跨浏览器解决方案)
    看到上例是不是觉得“哇,终于可以跨浏览器使用了”,但你这样想的时候有没有考虑过IE的感受?IE6/7是没有伪类的,还不赶快跪下对IE叫声“大哥”,虽然IE6已经退出市场,但是IE7还是需要兼容的,所以呢,我自己又想到了以下的办法,我这边测试了下感觉还行。

    上代码

     1 <p id="con2">文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略<span class="t2">...</span>
     2 </p>
     3 <style>
     4 #con2{
     5   position: relative;
     6   height: 40px;
     7    250px;
     8   line-height: 20px;
     9   overflow: hidden;
    10   padding-right: 12px;
    11 }  
    12 .t2{
    13   position: absolute;
    14   right: 0;
    15   bottom: 0;
    16 }
    17 </style>

    这个方法的原理是:首先在包含文字的元素里,嵌入一个<span>...</span>,然后包含文字的元素右侧留出...的位置(padding-right),最后利用绝对定位将...定位至右侧的padding-right区域
    示例

    文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略号,文本溢出显示省略...

    4.其他
    利用js插件来实现该功能,这里有俩款插件推荐,这篇主要介绍的是css方法,所以它们使用方法就不废话了。

    问题
    感谢村长指出了第二种和第三种都没有考虑到内容不足俩行的情况,这种情况下,我的上面说到的第二种和第三种方法,“...”依旧会存在,并不会隐藏。暂时还没有想出利用css来实现不到俩行隐藏的办法,sorry。所以如果存在不到俩行的情况尽量还是不要用了吧,可以使用js。这个就先放在这儿,什么时候想到办法再来修改

     1   function mitulineHide(num,con){
     2         var contain = document.getElementById(con);
     3          console.log(con);
     4         var maxSize = num;
     5         var txt = contain.innerHTML;
     6         if(txt.length>num){
     7             console.log('1')
     8             txt = txt.substring(0,num-1)+"..."
     9             contain.innerHTML = txt;
    10         }else{
    11             console.log("error")
    12         }
    13     };

    该函数传入俩个参数:允许的最大文字数目包含文字的元素节点Id

  • 相关阅读:
    Linux 命令查找文件中某个字段所存在的位置
    PHP in_array() 函数
    php一维数组如何追加到二维数组
    电脑切换窗口
    微擎前端逻辑判断的时弹框
    JDBC批量处理
    数据库事务
    处理BLOB
    JDBC自动生成主键值
    JDBC的元数据
  • 原文地址:https://www.cnblogs.com/zhaobao1830/p/9143582.html
Copyright © 2020-2023  润新知