`
thomas0988
  • 浏览: 486068 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
社区版块
存档分类
最新评论

文字超出隐藏显示省略号

 
阅读更多

单行文本

[编辑]demo

.ellipsis1{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
<div class="ellipsis1">
单行文字超出隐藏单行文字超出隐藏单行文字超出隐藏单行文字超出隐藏单行文字超出隐藏单行文字超出隐藏
单行文字超出隐藏单行文字超出隐藏单行文字超出隐藏单行文字超出隐藏单行文字超出隐藏单行文字超出隐藏
</div>

[编辑]注意

text-overflow属性仅是注解,当文本溢出时是否显示省略标记。并不具备其它的样式属性定义。要实现溢出时产生省略号的效果必须定义:强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏(overflow:hidden),只有这样才能实现溢出文本显示省略号的效果。

[编辑

[编辑]多行文本

[编辑]针对某个浏览器的做法

[编辑]chrome

在新版的chrome中有一个属性-webkit-line-camp属性,它允许你指定特定行数省略。

.ellipsis-more-webkit{
    width:100%;
    height: 50px;
    line-height: 25px;
    display: -webkit-box;
    -webkit-line-clamp: 2;/*行数*/
    -webkit-box-orient: vertical; /* 方向 */
    overflow: hidden;
}
<div class="ellipsis-more-webkit">
两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏
且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号,两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号
两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号
    </div>

[编辑]opera

在opera浏览器中,也有一个支持属性,即text-overflow:-o-ellipsis-lastline,它能识别超出容器的最后一行作省略。

.ellipsis-more-opera{
    width:100%;
    height: 50px;
    line-height: 25px;
    text-overflow:-o-ellipsis-lastline;
    overflow: hidden;
}
<div class="ellipsis-more-opera">
两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏
且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号,两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号
两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号
    </div>

[编辑]通用方法

[编辑]纯css,支持IE9+,firefox,chrome等

.ellipsis {
    overflow: hidden;
    height: 100px;
    line-height: 25px;
    margin: 20px;
    border: 5px solid #AAA; 
}
.ellipsis:before {
    content:"";
    float: left;
    width: 5px; height: 100px; 
}
.ellipsis > *:first-child {
    float: right;
    width: 100%;
    margin-left: -5px; 
}        
.ellipsis:after {
    content: "\02026";  
    box-sizing: content-box;
    -webkit-box-sizing: content-box;
    -moz-box-sizing: content-box;
    float: right; 
    position: relative;
    top: -25px; 
    left: 100%; 
    width: 3em; 
    margin-left: -3em;
    padding-right: 5px;  
    text-align: right;
    /*根据背景颜色更改渐变颜色*/
    background: -webkit-gradient(linear, left top, right top,
        from(rgba(255, 255, 255, 0)), to(white), color-stop(50%, white));
    background: -moz-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white);            
    background: -o-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white);
    background: -ms-linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white);
    background: linear-gradient(to right, rgba(255, 255, 255, 0), white 50%, white); 
}
<div class="ellipsis">
   <p>I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,
I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,
I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,
I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,
I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,
I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,I want to hide,
I want to hide,</p>    
</div>

[编辑]css+jquery 主流浏览器都支持

.ellipsis-more{
    width: 100%;
    height: 50px;
    overflow: hidden;
    line-height: 25px;
}
<div class="ellipsis-more">
<p>两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后
我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号,两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏
且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号两行之后我要隐藏且显示省略号</p>
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(".ellipsis-more").each(function(i){
    var divH = $(this).height();
    var $p = $("p", $(this)).eq(0);
    /**一般是2分法截断,但是考虑到文本里分为三种:中文字、英文字、字符;一般来说,中文字=2英文字=2字符。因此最坏情况可能前面一半字符全部是英文,
    后面一半文本全部是中文,这样二分法就会截取到25%的高度,因此考虑到最坏情况,需要3倍才截断**/
    while($p.outerHeight()>=divH*3){
        $p.text($p.text().substring(0,$p.text().length/2));
    }
    while ($p.outerHeight() > divH) {
        $p.text($p.text().replace(/(\s)*([a-zA-Z0-9]+|\W)(\.\.\.)?$/, "..."));
    };
});
</script>
<pre>
分享到:
评论

相关推荐

    CSS实现不换行/自动换行/文本超出隐藏显示省略号

    CSS实现不换行/自动换行/文本超出隐藏显示省略号;自动换行,强制不换行,单行文本不换行多余文本显示省略号,第n行显示省略号,亲测有效。

    CSS文本超出2行就隐藏并且显示省略号

    //溢出用省略号显示 white-space:nowrap; //溢出不换行 但是第三条属性,只能显示一行,不能用在这里,那么如果显示多行呢? 超出两行隐藏: css3解决了这个问题,解决方法如下: display:-webkit-box; //将对象作为...

    js文本超出长度用省略号代替,鼠标悬停div显示

    html单元格显示不下的文本用省略号代替,并且鼠标悬停在单元格下面用div显示该单元格的全部文本信息。

    js文字超出省略号特效

    "js文字超出省略号特效"就是一种利用JavaScript实现文本溢出时添加省略号的技术,它可以帮助我们在不改变HTML结构的前提下,优雅地处理长文本的显示。以下是关于这个主题的详细知识点: 1. **CSS基础**:首先,我们...

    文字超出显示区域后隐藏并显示省略号

    本示例中最多显示3行,超出3行后,在第三行末尾用省略号代替显示。 view { display: -webkit-box; overflow: hidden; text-overflow: ellipsis; word-break: break-all; -webkit-box-orient: vertical; -...

    js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例

    要让文本在超出容器宽度时显示省略号,需要设置几个关键的CSS属性。这些属性是: - `width`: 设置容器的宽度,使得文本内容能够在视觉上有溢出的可能。 - `overflow`: 设置为`hidden`,这会隐藏超出容器宽度的文本...

    微信小程序实现多行文字超出部分省略号显示功能

    用省略号… 来替代,这样显示比较美观好看,显示效果如下 其实实现也是比较简单的 工程中样式文件.wxss内容如下: .productNameText { color: rgb(32, 27, 27); font-size: 35rpx; text-overflow:ellipsis; z-...

    CSS实现文字多行省略效果.zip_朋友圈文字最后变成省略号

    在给定的“CSS实现多行文字显示省略号效果.zip”压缩包中,包含了一个名为“2.css”的样式表文件,它使用了`-webkit-line-clamp`属性来指定省略的行数,以及一个“1.html.txt”的HTML文件,用于展示这个效果。...

    HTML+css 超出字符省略号表示

    /* 当内容超出时显示省略号 */ white-space: nowrap; /* 不换行,使得内容在一行内显示 */ } ``` 这段CSS代码将确保文本在固定宽度内显示,超出的部分会被隐藏,并在结尾处添加省略号。请注意,这种方法只适用于...

    网页文字溢出显示省略号jQuery插件代码.zip

    网页文字溢出显示省略号是一种常见的网页设计技巧,它能有效地管理长文本,使得页面在有限的空间内保持整洁和可读性。jQuery插件在这个过程中起到了关键的作用,通过JavaScript的强大功能来实现这一效果。本压缩包...

    Android实现在TextView文字过长时省略部分或滚动显示的方法

    本篇将详细介绍如何在TextView中实现文字过长时的省略显示和滚动显示。 首先,TextView的`ellipsize`属性是一个关键,它定义了当文本超出TextView的边界时如何处理。以下为四种不同的`ellipsize`值及其效果: 1. `...

    DIV 上下居中 多行 省略号

    接下来是实现超过固定行数时显示省略号的效果。CSS3提供了一个`line-clamp`属性,它限制了在一个块级元素显示的内容的行数。但是,`line-clamp`需要与`display: -webkit-box`和`-webkit-line-clamp`一起使用才能在...

    微信小程序之canvas 文字断行和省略号显示

    文字的多行处理在dom元素中很好办。但是canvas中没有提供方法,只有通过截取指定字符串来达到目的。 那么下面就介绍我自己处理的办法: wxml: ...canvas肯定要一个画板容器啦...//处理文字多出省略号显示 dealWords: fu

    简介内容超出部分文字隐藏省略的特效(可显示)

    当文字超出预设的字符数时,超出的部分会被省略,并用省略号表示,同时提供一个“展开”链接或按钮,让用户可以选择查看完整内容。 实现这一特效的方式多种多样,但常见的是通过JavaScript来动态处理文本。在给出的...

    CSS实现标题文字过长部分显示省略号的方法

    在Web开发中,为了提升用户的阅读体验,常常需要对长文本进行截断处理,特别是在标题或列表项中,当内容超出预设空间时,显示省略号(...)是一种常见的做法。以下将详细介绍如何使用CSS实现单行和多行文本溢出时...

    解决layui表格内文本超出隐藏的问题

    例如,默认情况下,如果文本太长,那么超出单元格的部分会自动隐藏,表现为省略号。 要解决文本超出隐藏的问题,可以对`.layui-table-cell`的样式进行如下调整: 1. `height:auto;` 这条规则将单元格高度设置为...

    微信小程序实现指定显示行数多余文字去掉用省略号代替

    在微信小程序开发中,实现指定显示行数并用省略号代替超出的多余文字是一种常见的文本显示需求。当文本内容超出特定范围时,通常希望以一种优雅的方式显示给用户,比如显示固定行数的文字,并用省略号(...)代替...

    判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号

    总之,实现“判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号”的功能,需要结合CSS的溢出省略策略与JavaScript的动态交互处理。通过这样的方式,我们可以为用户提供更好的阅读体验,同时保持界面...

    CSS省略号text-overflow超出溢出显示省略号

    在实际应用中,为了实现溢出文本显示省略号的效果,除了需要使用text-overflow属性外,通常还需要配合使用overflow和white-space属性。overflow属性决定了当内容溢出其块级格式化上下文时如何处理,而white-space...

Global site tag (gtag.js) - Google Analytics