CSS文本过长时设置省略号
写页面时很多时候会遇到一个容器中文本内容超出,使用
overflow : hidden;,但是跟用户体验不太友好,设置overflow : scroll;会出现滚动看着也不爽,所以我就想使用css 设置超出省略号显示
单行文本
语法:
text-overflow : clip | ellipsis
参数:
clip : 不显示省略标记(...),而是简单的裁切
(clip这个参数是不常用的!)
ellipsis : 当对象内文本溢出时显示省略标记(...)
说明:
设置或检索是否使用一个省略标记(...)标示对象内文本的溢出。
最大的缺点:text-overflow:ellipsis属性在FF中是没有效果的。
注意:
一、仅定义text-overflow:ellipsis; 不能实现省略号效果。
二、定义text-overflow:ellipsis; white-space:nowrap; 同样不能实现省略号效果。
三、同时应用: text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 实现了所想要得到的溢出文本显示省略号效果
四、部分浏览器需要设置宽度。
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
多行文本
WebKit浏览器或移动端的页面:
在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;,/*可以用来多行文本的情况下,用省略号“…”隐藏超出范围的文本 。*/
overflow : hidden;
display: -webkit-box;
-webkit-line-clamp: 2; /* 设置文本超出的行数,显示省略号*/
-webkit-box-orient: vertical;
这个属性比较合适WebKit浏览器或移动端(绝大部分是WebKit内核的)浏览器。
跨浏览器兼容的方案:
比较靠谱简单的做法就是设置相对定位的容器高度,用包含省略号(…)的元素模拟实现;
p {
position:relative;
line-height:1.4em;
/* 3 times the line-height to show 3 lines */
height:4.2em;
overflow:hidden;
}
p::after {
content:"...";
font-weight:bold;
position:absolute;
bottom:0;
right:0;
padding:0 20px 1px 45px;
background:url(http://css88.b0.upaiyun.com/css88/2014/09/ellipsis_bg.png) repeat-y;
}
注意:
height高度真好是line-height的3倍;结束的省略好用了半透明的png做了减淡的效果,或者设置背景颜色;IE6-7不显示content内容,所以要兼容IE6-7可以是在内容中加入一个标签,比如用…去模拟;要支持IE8,需要将::after替换成:after;
JavaScript 方案:
用js也可以根据上面的思路去模拟,实现也很简单,推荐几个做类似工作的成熟小工具:
1.Clamp.js
下载及文档地址: https://github.com/josephschmitt/Clamp.js 使用也非常简单:
var module = document.getElementById("clamp-this-module");
$clamp(module, {clamp: 3});
2.jQuery插件-jQuery.dotdotdot
$(document).ready(function() {
$("#wrapper").dotdotdot({
// configuration goes here
});
});
参考: https://www.cnblogs.com/wang98/p/7655744.html
CSS文本过长时设置省略号的更多相关文章
- css文本过长如何设置省略号
对于单行文本: 语法: text-overflow : clip | ellipsis 参数: clip : 不显示省略标记(...),而是简单的裁切 (clip这个参数是不常用的!) el ...
- CSS,bootstrap表格控制当td内容过长时用省略号表示,以及在不使用bootstrap时过长也用省略号表示
首先需要在table中设置table-layout:fixed; <table style="table-layout:fixed"></table> 然后 ...
- HTML中文本过长时自动隐藏末尾部分或中间等任意部分
一. 一般情况下,HTML字符串过长时都会将超过的部分隐藏点,方法如下: 设置CSS: .ellipsis-type{ max-width: 50px; ...
- Table里td中的文本过长,设置不换行,随内容同行显示(转载)
当td中内容过长时,内容会溢出,换行显示,美观超级差,在td里设置这个属性 "white-space:nowrap 就可以解决排版问题啦 <td style="white ...
- css实现文本过长时自动添加省略号
1. 效果 2. Html <div id="main_app_content" class="container"> <div class= ...
- 文本太长,用省略号显示的css样式
——html代码 <divid="d1" title="鼠标放上显示的文字"></div> ——css代码 #d1{ width:300 ...
- css 文本两行显示,超出省略号表示
重点:text-overflow: ellipsis;只对display:inline:起作用 例子: <span class="a">我说说<b class= ...
- flex布局文本过长不显示省略号
https://www.cnblogs.com/tgxh/p/6916930.html 解决方法: 给flex子元素添加css: white-space: nowrap; text-overflow: ...
- css 控制文字超出时显示省略号
不多说,直接看代码吧: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- TextBlock 重写,当文本过长时,自动截断文本并出现Tooltip
如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
随机推荐
- Pod概述
Pod的类型 Pod的类型有如下两个: 自主式Pod:自主式Pod的含义简白来说就是不是被控制器管理的Pod,另一种就是被控制管理的Pod,不被控制器管理的Pod你会发现,它一旦死亡的话,就没有人把它 ...
- ABAP 调用HTTP上传附件(二)之中文乱码
1.这篇文章的由来 之前已经发表了<ABAP 调用HTTP上传附件>的文章,详细介绍了如何通过HTTP请求传输附件,可点击链接参考原有文档 因为之前对传输文件的中文文件名处理上解释不够详细 ...
- java面向对象-基础入门
java面向对象-基础入门 面向过程:线性思维 面向对象思维:物以类聚,分类的思维 对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统,但是具体到某个微观 ...
- 美团面试:熟悉哪些JVM调优参数?
本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...
- js面试题学习整理
1. 异步操作有哪些? 回调函数,事件监听,promise,ajax,async,setTimeout,Generator 2. Promise是什么? Promise是异步编程的一种解决方案. 从语 ...
- MySQL日志机制分析
进入正题前先简单看看MySQL的逻辑架构,相信我用的着. MySQL的逻辑架构大致可以分为三层: 第一层:处理客户端连接.授权认证,安全校验等. 第二层:服务器server层,负责对SQL解释.分析. ...
- easy-excel读取远程地址获得文件进行上传
背景 作为一个快五年的程序员,一直以来还没有自己维护过自己的技术栈,最近也是有时间,所以也是下定决心,从头开始,一步一步的夯基础.最近在系统化的学习easy-excel,今天遇到了一个问题,特意记录一 ...
- vue指令之属性指令
目录 属性指令 示例 属性指令 标签上的属性可以绑定变量,变量变化,属性也会变化 # 什么是属性?比如: href/src/name/value/class/style... 语法: v-bind:属 ...
- Django之时区修改
修改时区方法 环境:windows10 修改settings.py文件,修改TIME_ZONE和USE_TZ参数 TIME_ZONE = 'Asia/Shanghai' USE_TZ = False
- Django相关配置信息
Django相关配置信息 1.配置数据库mysql 1.1 setting.py中配置信息 DATABASES = { 'default': { 'ENGINE': 'django.db.backen ...