文字超出三行省略…显示全文「建议收藏」

文字超出三行省略…显示全文「建议收藏」1、在开发过程中,我们经常会用到这种超出三行显示…的要求,使用css属性是可以的,但是需要考虑兼容性问题实现单行文本的溢出显示省略号,我们应该都知道用text-overflow:ellipsis

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1、在开发过程中,我们经常会用到这种超出三行显示…的要求,使用css属性是可以的,但是需要考虑兼容性问题

实现单行文本的溢出显示省略号,我们应该都知道用text-overflow:ellipsis属性,同时注意加width来兼容部分浏览器;

.textOVerFlow {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

实现三行在此基础上扩展:

.textOVerThree {
    display: -webkit-box;
    overflow: hidden;
    white-space: normal !important;
    text-overflow: ellipsis;
    word-wrap: break-word;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical
}

因为使用了WebKit的CSS扩展属性,该方法适用于WebKit浏览器及移动端;

文字超出三行省略...显示全文「建议收藏」

2、此处延伸 ,超出三行显示展示全文,如果使用以上属性我们可以发现,实际上dom里面的文字没有改变,只是视觉上有…,实现超出三行显示全文,分为两步:

(1)、是否满足三行

(2)、是否出现了省略号…  或者说是否超过了三行

文字超出三行省略...显示全文「建议收藏」

 

那麽对应的解决方案:

(1)行数我们可以通过 使用 line-height*num 与 dom的高度进行比较,但是无法判读是否三行全部占满,

(2)因为上面属性是实际文本内容并没有改变,所以说,我们可以获取到实际dom的高度,scrollHeight,与 我们需要的高度进行比较即可;

setCheckAll('.p_14', 3, '查看全文', 'text_blue');
/*设置必须有line-height   超过多少行显示文字查看全文*/
function setCheckAll(select, num, text, name) { //num 代表行数 text为添加显示的文字,

    var height = $(select).height(),

    realityHeight = $(select).get(0).scrollHeight;

    lineHeight = $(select).css('line-height');

    lineHeight = lineHeight.split('px')[0];

    if(height + 1 >= lineHeight * num && realityHeight >= lineHeight * num) {

        $(select).after('<p class="' + name+ '">' + text + ' ></p>');

    };    

  //lineHeight * num 是几行的高度,只要 实际的高度超过了设定的这个高度,就可以认为是超出了 num 行 

  }

  

 

以上有什么问题欢迎指出,蟹蟹!

 

菜菜叨逼叨

在本次需求中,也算是一个小学习吧,本来是想通过判断文字的字数来控制“查看全文”的展示与否,这种方法实现太过复杂,需要考虑不同屏幕的尺寸,文字中的特殊字符,包括可能存在的<br/>;跟产品的谈判又失败了,在设计上一点小的调整,可以降低开发的时间与难度,但是需求方一再不肯退步,手动狗头。如果在时间充足的条件下,可以考虑实现难点,如果时间紧迫,建议还是先找一种易实现的设计形式;不然只能两败俱伤啊~~~~~~~~~~~~~

 

 

 

转载请注明出处,虽然我是一只小菜鸡~

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167764.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月2日 下午11:00
下一篇 2022年8月2日 下午11:16


相关推荐

  • 600、000、002、200、300、400等开头的股票代表什么?

    600、000、002、200、300、400等开头的股票代表什么?600 开头的股票是上证 A 股 属于大盘股 其中 6006 开头的股票是最早上市的股票 6016 开头的股票为大盘蓝筹股 900 开头的股票是上证 B 股 000 开头的股票是深证 A 股 001 002 开头的股票也都属于深证 A 股 其中 002 开头的股票是深证 A 股中小企业股票 200 开头的股票是深证 B 股 300 开头的股票是创业板股票 400 开头的股票是三板市场股票 另外

    2026年3月18日
    2
  • C++后台开发之我见

    C++后台开发之我见C 后台开发之我见 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 2017 2 6 nbsp nbsp nbsp nbsp nbsp 工作也快两年了 偶然看到自己以前写过的一些技术博客 发现自己自毕业后一直没有更新过自己的技术博

    2026年3月18日
    2
  • parameterizedtypeimpl_getparameter和getattribute的区别

    parameterizedtypeimpl_getparameter和getattribute的区别publicinterfaceParameterizedTypeextendsTypeSubParam.Javapackagecom.github.retrofit2;/***Createdby刘春龙on2017/5/5.*/publicclassSubParamextendsParam{classMyClass{}classMyInvoke{}publicst…

    2025年7月11日
    6
  • 静态IP地址版EVE模拟器部署和使用说明

    静态IP地址版EVE模拟器部署和使用说明很多小伙伴由于还是初学者,对DHCP等协议并不熟悉,因此在使用模拟器的时候出现各种不理解的问题。为了让大家顺利的开始学习之路,特分享一个静态IP地址版本的供大家选择。前面的部署步骤请参考我的另一篇博客:https://blog.51cto.com/dashu666/2177842虚拟机导入完成之后,在开机之前,需要做如下操作:1、将虚拟机桥接到一个虚拟网络中,如下图:这里的…

    2022年5月1日
    261
  • Python6大设计原则

    内容总览六大设计原则都有哪些内容详解一、单一职责原则单一职责原则:英文名称是SingleResponsiblityPrinciple,简称是SRP。定义:应该有且仅有一个原因引起类的变更。

    2022年3月29日
    64
  • sqlplus/as sysdba报错(ora-01422)

    windows下sqlplus/assysdba报ora-12560的终极解决方法

    2022年4月10日
    158

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号