精华内容
下载资源
问答
  • 众所周知,通过css设置文字强制不换行超出用省略号表示很简单: { white-space: nowrap; 文本强制不换行; text-overflow:ellipsis; 文本溢出显示省略号; overflow:hidden; 溢出的部分隐藏; } 但是如果要想...

    众所周知,通过css设置文字强制不换行超出用省略号表示很简单:

    {
        white-space: nowrap; 文本强制不换行;
        text-overflow:ellipsis; 文本溢出显示省略号;
        overflow:hidden; 溢出的部分隐藏;
    }

    但是如果要想显示两行,超出用省略号表示要怎么写呢?

    {
        overflow: hidden;
        -webkit-line-clamp: 2;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-box-orient: vertical;
    }

    -webkit-line-clamp用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的WebKit属性。
    常见结合属性:
    1,display: -webkit-box; 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
    2,-webkit-box-orient 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
    3,text-overflow: ellipsis;,可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本 。

    展开全文
  • 截断过长字符省略号算法

    千次阅读 2010-07-13 22:30:00
    截断过长字符省略号算法

                                       截断过长字符串为省略号算法

      本文章转载自http://blog.csdn.net/norains/archive/2010/06/02/5643039.aspx

     

     

       真的很想说,这标题咋看咋别扭,咋念咋拗口,但我实在想不出更好的标题了,就先权当如此吧。如果你有更好的想法,欢迎告诉我,谢谢!:)

        为避免浪费各位看官的时间,我们还是直接转入正题吧。在实际的开发当中,我们经常会遇到要字符串比显示的区域要长的情况,从而导致显示不全。最合适的方法自然是跑马灯的滚动显示,不过这个可能稍微复杂了点,并不是所有的情况下都能适用;也许最最简易的,可能就是直接将超出范围的字符串用省略号替代了。

        好像不是很难,不是么?但实际并非如此。比如,有一个字符串"你好,我们可以聊聊么?",你是决定只显示哪部分,而哪部分是被替代的呢?这个字符串所要显示的文字,如何确定?大部分菜鸟的第一反应,估计就是固定要只是显示多少个字符,超过的,就一律以省略号替代。实际上,这是不行的。如果字符全部为中文,或是全部为英文还行,如果又有中文和英文,那么由于互相字符宽度不同,显示就很死翘翘了。

      假设我默认的显示文字为九个,那么在我的平台上显示的就是这样:
      
      
      很明显看到,这两串字符的宽度完全是不同的,而下面的英文字符其实可以容纳更多。所以,以固定数目来做截取的标准,是完全不可取的。
      
      有的朋友或许对GetTextMetrics比较熟悉,想到调用该函数返回字体的平均宽度,然后再与范围宽度相除。但毕竟平均不是实际,有时候用平均值来计算,误差也是很大的。
      
      不过,微软毕竟还是微软,并没有将路给堵绝。它还给我们留了一个GetTextExtentPoint函数,用它来获取字符串所占的空间范围。
      
      在具体说这个函数之前,我们先来看一副图:
      
      
      这是字符串超出显示范围的一个情况。其中,蓝色方框的区域是显示的区域,绿色方框是应该显示的字符,而红色则是省略号占据的空间。对于我们来说,只需要知道绿色方框能包含多少个字符即可。
      
      而GetTextExtentPoint函数能够计算输入的字符串占据的空间范围,所以通过它进行运算,就能获知我们需要显示多少个字符。现在的问题是,我们如何去调用这个函数?难道先从"你"开始,依次递进,以"你"、"你好"、"你好,"、"你好,这"等等这样的方式一个一个作为形参去进行测试?不用想,这效率,肯定奇差,甚至可能成为拖慢程序的一个禁锢。
      
      所以,简单点,我们就用二分法吧。声明一个函数,它可以接收当前的hdc,显示范围的大小,以及测试的字符串,返回的是该显示范围能容纳下的字符。
      
      故此,函数实现如下:

     

    函数的调用其实也很简单,但我们要注意,调用前先将省略号的空间给去掉。故实际的调用代码简单如下:

     

     

      
      那么,看看我们这函数的实际显示成果吧:
      

     

    本文来自CSDN博客,转载出处:http://blog.csdn.net/norains/archive/2010/06/02/5643039.aspx

     

     

    展开全文
  • Qt设置字符太长,使用省略号显示

    千次阅读 2019-09-01 17:51:13
    1.运行截图 2.... //当字符宽度大于最大宽度时进行转换 if (width >= MaxWidth) { //右部显示省略号 str = fontWidth.elidedText(str, Qt::ElideRight, MaxWidth); } //返回处理后的字符 return str; }

    1.运行截图

    2.源码

    #ifndef WIDGET_H
    #define WIDGET_H
    
    #include <QWidget>
    #include <QList>
    
    namespace Ui {
    class Widget;
    }
    
    
    class Widget : public QWidget
    {
        Q_OBJECT
    
    public:
        explicit Widget(QWidget *parent = 0);
        ~Widget();
    public:
        QString getElidedText(QFont font, QString str, int MaxWidth);
    
    private:
        Ui::Widget *ui;
    
    };
    
    #endif // WIDGET_H
    
    #include "widget.h"
    #include "ui_widget.h"
    #include <QFont>
    
    const int g_maxValue = 50;
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
        ui->label->setAlignment(Qt::AlignCenter);
        ui->label->setFixedWidth(g_maxValue);
        ui->label->setFixedHeight(30);
        ui->label->setStyleSheet("background-color: rgb(0, 255, 0);");
        ui->label->setFont(QFont("微软雅黑",10));
    
        QString str = QString("一二三四五");
    
        QString txt = getElidedText(ui->label->font(), str, g_maxValue);
    
        ui->label->setText(txt);
        ui->label->setToolTip(str);
    
    
    }
    
    Widget::~Widget()
    {
        delete ui;
    }
    
    QString Widget::getElidedText(QFont font, QString str, int MaxWidth)
    {
        if (str.isEmpty())
        {
            return "";
        }
    
        QFontMetrics fontWidth(font);
    
        //计算字符串宽度
        int width = fontWidth.width(str); 
    
        //当字符串宽度大于最大宽度时进行转换
        if (width >= MaxWidth)
        {
            //右部显示省略号
            str = fontWidth.elidedText(str, Qt::ElideRight, MaxWidth);  
        }
    
        //返回处理后的字符串
        return str;   
    }
    
    

     

    展开全文
  • 列表中字符长度过长用省略号代替及鼠标悬停显示完整字符jquery问题描述目标效果1:内容超过一定长度后以省略号显示目标效果2:鼠标悬停时,用悬停框的形式显示全部信息。最终效果:成功 问题描述 在修改bug过程...

    问题描述

    在修改bug过程中,遇到列表中的字符串过长,解决方案是尾部用省略号代替。鼠标悬停时,用悬停框的形式显示全部信息。
    在这里插入图片描述
    首先,对于列表中的字符串长度过长,对这列字符串设置css属性,列表代码情况如下:
    在这里插入图片描述

    目标效果1:内容超过一定长度后以省略号显示

    做法:对列表中的serach-item设置css属性

    1. white-space: nowrap 保证文本内容不会自动换行,如果多余的内容会在水平方向撑破单元格。
    2. overflow: hidden 隐藏超出单元格的部分。
    3. text-overflow: ellipsis 将被隐藏的那部分用省略号代替。
      在这里插入图片描述
      此时,已经完成了第一步工作。
      由于字符串隐藏的内容不见了,为了让用户能够看到字符串的全部内容,因此设置鼠标悬停时显示全部内容的功能。我们采取的最终做法是在列表中(li标签)加入titile属性,也就是将完整字符串赋值给title属性。比如title=“字符串内容”,此时问题解决(解决大部分项目问题)。

    目标效果2:鼠标悬停时,用悬停框的形式显示全部信息。

    在这里插入图片描述
    然而,由于项目开发中字符串内容是动态的,并且字符串内容item.name的格式如:

    DS-2CD5032FWD-A_<font color="red">1</font><font color="red">8</font><font color="red">8</font>.<font color="red">1</font>2<font color="red">1</font>Camera 0<font color="red">1</font>
    

    楼主经过多种方法尝试,最终用正则解决了这个问题。思路:将字符串的html格式数据过滤,然后用把过滤后的字符串赋值给title。
    在这里插入图片描述

    最终效果:成功

    在这里插入图片描述

    展开全文
  • Thinkphp内置了个可以媲美smarty的模板引擎,给我们带来了很的方便。调用函数也一样,可以和smarty一样调用自己需要的函数,而官方也内置了一些常用的函数供大家调用。 比如今天我们说的截取字符函数,在...
  • 有时候我们会遇到这样的问题,字符写到TextView里面,根本写不下,但是该字符并不是固定的,所以我们不知道需要定多长的TextView 所以对于过长的字符我们最后以省略号代替。如下所示: TextView只显示...
  • 项目中经常会遇到这种问题:显示某个标题时候,如果标题长度太长,要么就要换行显示,要么就需要截取字符,后二者是采用最多的。 在截取字符的时候,常用的方法是: 1....是不能追加省略号的,所以SQl只
  • php显示指定长度的字符,超出长度以省略号填补尾部 function strCut($str,$length)//$str为要进行截取的字符,$length为截取长度(汉字算个字,字母算半个字) { $str = trim($str); $string = ""; if...
  • mb_substr ...gt;... mb_substr — 获取部分字符 说明 string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_...根据字符数执行个多字节...
  • 用CSS来实现把过长的字符替换为省略号 2007-10-26 15:03 阅读6 评论1 上网经常会看到,主页显示的某段内容的标题或前几个文字,再加个省略号(……),详细内容待点链接进入。现就这省略号用css来实现(不然用...
  • * 自定义Textview 超过最大行数 末尾显示省略号和最后个字符 * 使用这个 控件 getText 的内容是不完整的 */ public class SymbolTextView extends TextView { public SymbolTextView(Context context) { ...
  • mb_substr — 获取部分字符 说明 string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) 根据字符数执行个多字节安全的 ...
  • CSS截取字符,多余文字省略号显示

    千次阅读 2011-09-14 22:24:55
    <div><a href="#">CSS截取字符,并将超出用省略号代替</a></div> <div><a href="http://www.hi.baidu.com/fzlibei" target="_blank">CSS</a></div> <div><a href=...
  • python输出是省略号问题

    千次阅读 2019-01-22 19:21:18
    省略号问题解决方法 Case 1: 如果你是numpy下的ndarry,那么执行 ''' threshold : int, optional Total number of array elements which trigger summarization rather than full repr (default 1000). linewidth...
  • 最近在做项目中,有个场景是这样的,购买机票时,出发城市和到达城市,最多显示5个字符,当字符长度超过5时就显示省略号,不足5时就根据字符的长度显示。第反应 看到这个需求的第反应就是自己先计算出5个...
  • css 文本超出省略号

    千次阅读 2019-02-22 15:55:40
    、div内显示行,超出部分用省略号显示 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 二、div内显示两行或三行,超出部分用省略号显示 overflow: hidden; text-overflow: ellipsis; ...
  • QT QLabel内容太长时候使用省略号

    千次阅读 2018-10-31 20:14:00
    个QLabel不可能显示无限长的字符啊,这时候我们可以考虑,如果字符长度太长的时候,我们就显示其中的部分,剩下的用...显示。 比如说我们要显示“1234567890abcdefghijklmnopqrstuvwxyz”,能不能显示成...
  • javascript控制文本显示行半,超出显示省略号

    千次阅读 热门讨论 2019-07-09 10:50:50
    在前端开发过程中,我们经常会遇到控制文本显示行或两行,超出显示省略号的需求,这个实现也非常简单,用css简单几行代码就搞定了。但是需求无处不在,现在需要将文本控制为行半或者两行半,这个貌似单纯用css是...
  • js超出文本省略号

    千次阅读 2018-03-02 13:41:31
    转自:http://www.jb51.net/article/88566.htmjavascript超过容器后显示省略号效果在实际的项目中,由于文字内容的长度不确定性和页面布局的固定性,难免会出现文字内容超过div(或其他标签,下同)区域的情况,此时...
  • 分别针对TextView和EditView超过限制长度显示省略号给出解决方案 TextView设置单行并且设置maxEms,超过的部分显示end省略号. <TextView android:layout_width="wrap_content" android:layout_height="wrap_...
  • 、第种方法 1. 先了解border属性 &amp;amp;amp;amp;amp;amp;lt;style type=&amp;amp;amp;amp;amp;quot;text/css&amp;amp;amp;amp;amp;quot;&amp;amp;amp;amp;amp;amp;gt; #div3{ height: ...
  • 有这样个需求:如果个字符超过某个长度,则超过该长度的部分用省略号代替。 很多人会觉得这 so easy,有点 Java基础的同学都可以简单编写出来。 那么我们来分析这个简单的问题。 二、编码 2.1 思路 ...
  • 1.如果想要在行里实现“超出长度显示省略号” 只需要加上简单的css样式即可: {overflow:hidden;white-space:nowrap;text-overflow:ellipsis;} 注意:这里实现的是“超出长度”,而不是“超出字数”,并且在...
  • 为了给用户个好的体验,往往策划会提出要求,比如角色名最大长度为18位,但是12位就已经超出框框,那么可以只显示9位,剩余部分用省略号替换,这样整个角色名就在给定框当中,给玩家的体验效果
  • 这个需求的实现很神奇,Text自己有个属性 numberOfLines ,可以控制超出几行会显示省略号,但是这个属性不满足项目需求,只能自己造个,虽然有点low的感觉,但是好歹实现了。 &lt;Text&gt; {title ?...
  • HTML内超过多少像素以省略号显示

    千次阅读 2013-01-01 23:14:53
    时间过的很快,转眼来到了2013年,我在北京工作也一年有余,静下心来,回头想想,自己貌似... 很多时候都有这种需求,页面上的文字显示不下,需要以省略号代替,可能有些人会想到通过控制文字的长度实现,的确,在已知
  • 这时就可以用QFontMetrics 类来获取字体宽度,最后用elide的Text()函数处理字符串省略号, 实现代码如下: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,905
精华内容 44,762
关键字:

一大串省略号