zoukankan      html  css  js  c++  java
  • css实现单行、多行文本溢出显示省略号(…)

    一、单行文本溢出显示省略号(…)

    省略号在ie中可以使用text-overflow:ellipsis了,但有很多的浏览器都需要固定宽度了,同时ff这些浏览器并不支持text-overflow:ellipsis设置了,下文来给各位整理一下兼容各浏览器显示省略号教程。大家应该都知道用text-overflow:ellipsis属性来实现单行文本的溢出显示省略号(…)。当然部分浏览器还需要加宽度width属性。
    1 p{
    2 overflow: hidden;
    3 white-space: nowrap;
    4 text-overflow: ellipsis;
    5 }

    但是这个属性并不支持多行文本溢出显示省略号。

    二、多行文本溢出显示省略号(…)

    在WebKit浏览器或移动端(绝大部分是WebKit内核的浏览器)的页面实现比较简单,可以直接使用WebKit的CSS扩展属性(WebKit是私有属性)-webkit-line-clamp ;注意:这是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中。

    -webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:

    display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。

    -webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。

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

    这个属性只合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器

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

    垮浏览器兼容的方案
    比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现;

    例如:

     1 p {
     2     position:relative;
     3     line-height:1.4em;
     4     /* 3 times the line-height to show 3 lines */
     5     height:4.2em;
     6     overflow:hidden;
     7 }
     8 p::after {
     9     content:"...";
    10     font-weight:bold;
    11     position:absolute;
    12     bottom:0;
    13     right:0;
    14     padding:0 20px 1px 45px;
    15 
    16 }
     
  • 相关阅读:
    Unique Binary Search Trees 解答
    Unique Paths II 解答
    Unique Paths 解答
    Maximum Subarray 解答
    Climbing Stairs 解答
    House Robber II 解答
    House Robber 解答
    Valid Palindrome 解答
    Container With Most Water 解答
    Remove Duplicates from Sorted List II 解答
  • 原文地址:https://www.cnblogs.com/mengruying/p/5565042.html
Copyright © 2011-2022 走看看