多行文本溢出显示省略号在IE和FF不兼容问题

之前做项目管理项目比较多,竟然从来不知道多行文本溢出显示省略号的常规写法
(overflow: hidden;text-overflow:ellipsis; display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;)在IE和Firefox是无效的,可见前端学习的无止境不止体现在js和各种主流框架等等,在css上也是一样。话不多说,直接上方案。

我在网上看到有两个好的解决办法,一个是利用js设置,一个是纯css(这个特别巧,我反正想不到)。特此记录一下。

HTML部分


html.png

一、js方法(手动写出省略号,将超出部分隐藏,省略号拼接到显示区最后面,达到超出显示省略号的效果)

css部分,首先设置好P标签的width和line-height,overflow:hidden等属性,再利用伪元素p::after设置省略号的内容和位置。代码如下:
css1.png

渐变背景是为了解决手动添加的省略号突兀的问题。

js部分,获取内容高度,除以行高,对比要显示的行数,让省略号显示或隐藏。代码如下:
js.png

二、css方法(利用浮动的特性实现,同时设置两个伪元素)。代码如下:

css2.png

最后的效果都是这样子的。


interface.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,868评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,958评论 1 45
  • 1. 默认的内外边距不同 问题: 各个浏览器默认的内外边距不同 解决: *{margin:0;padding:0;...
    jslxm阅读 873评论 0 2
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,431评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,174评论 1 32