js和css实现内容超过边框,就自动省略,自动添加title
在项目汇总,我们有这样的需求,如果内容多了,就自动省略,自动添加title
这个需要判断判断俩个值,一个是width(),一个是scrollWidth,
在div中,如果内容没有超过边框,这俩个值是一样的,就是css设置的宽度;如果内容超过边框了,scrollWidth的值会大于width,所以我们可以通过判断scrollWidth和width的值
来知道内容是否超过边框
例:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1,maximum-sacle=1,user-scalable=no">
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<style>
.test1{
width: 200px;
height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
</head>
<body>
<div>
<div class="test1">阿尔瓦尔</div>
<div class="test1">阿尔瓦尔方式顶顶顶顶顶顶顶顶顶顶顶顶顶顶多多多多多多多多多多多多多多多多多多多多</div>
</div>
<script>
$(function () {
console.log($(".test1").eq().width())
console.log($(".test1").eq()[].scrollWidth)
for(var i = ;i<$(".test1").length;i++){
if($(".test1").eq(i).width() < $(".test1").eq(i)[].scrollWidth){
$(".test1").eq(i).attr("title",$(".test1").eq(i).text())
}
}
})
</script>
</body>
</html>
在table中,就不能这样判断了,就算内容没有超过边框,scrollWidth也会大于width,所以我们只用scrollWidth就行,先通过计算获取内容少时scrollWidth的值,然后同判断
如果当前的scrollWidth大于之前计算的值,就说明内容超过边框了
例:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1,minimum-scale=1,maximum-sacle=1,user-scalable=no">
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<style>
table{
width: 1080px;
table-layout: fixed;
border-collapse: collapse;
margin: auto;
}
thead{
width: auto;
font-size: 14px;
text-align: center;
background-color: #;
}
thead tr,thead th{
border: 1px solid #dddddd;
border-left: none !important;
color: #ffffff;
height: 50px;
font-size: 14px;
}
thead tr img,tbody td img{
width: 14px;
height: 14px;
cursor: pointer;
} tbody{
width: auto;
min-width: 1070px;
font-size: 14px;
text-align: center;
border-bottom: 1px solid #dddddd;
background-color: #ffffff;
}
tbody tr,tbody td{
border-left: 1px solid #dddddd;
border-right: 1px solid #dddddd;
height: 67px;
color: #;
}
tbody td{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
</style>
</head>
<body>
<table>
<tbody>
<tr>
<td class="test2">我是</td>
<td class="test1" width="">我是1反倒</td>
<td>我是2</td>
</tr>
<tr>
<td>我是</td>
<td class="test1" width="">我是1反倒是所所所所所所所所所所所所所所所所所所所所我是1反倒是所所所所所所所所所所所所所所所所所所所所我是1反倒是所所所所所所所所所所所所所所所所所所所所</td>
<td>我是2</td>
</tr>
<tr>
<td>我是</td>
<td class="test1" width="">我是1反倒是所所所所所所所所所所所所所所所所所所所所我是1反倒是所所所所所所所所所所所所所所所所所所所所我是1反倒是所所所所所所所所所所所所所所所所所所所所</td>
<td>我是2</td>
</tr>
</tbody>
</table>
<script>
$(function () {
// 352是最开始算出来的,当内容很少时,scrollWidth值是352
for(var i = ;i<$(".test1").length;i++){
if($(".test1").eq(i)[].scrollWidth > ){
$(".test1").eq(i).attr("title",$(".test1").eq(i).text())
}
}
})
</script>
</body>
</html>
js和css实现内容超过边框,就自动省略,自动添加title的更多相关文章
- CSS实现内容超过长度后以省略号显示
样式: {width: 160px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap;} 说明: white-space: ...
- ASP.NET MVC 5 默认模板的JS和CSS 是怎么加载的?
当创建一个默认的mvc模板后,项目如下: 运行项目后,鼠标右键查看源码,在源码里看到头部和尾部都有js和css文件被引用,他们是怎么被添加进来的呢? 首先我们先看对应的view文件index.csht ...
- JavaScript使用localStorage缓存Js和css文件
对于WebApp来说,将js css文件缓存到localstorage区可以减少页面在加载时与HTTP请求的交互次数,从而优化页面的加载时间.特别是当移端信号不好高延迟时优化效果还是很显见的 下面的代 ...
- 0019 盒子模型(CSS重点):边框、内外边距、布局稳定性、PS
typora-copy-images-to: media 第01阶段.前端基础.盒子模型 盒子模型(CSS重点) css学习三大重点: css 盒子模型 . 浮动 . 定位 主题思路: 目标: 理解: ...
- 纯css竟可以做出边框这样长宽度的过渡效果
边框效果如下:鼠标移到下面方形,就有效果 要是没有效果,点这个:https://murenziwei.github.io/testGit/Untitled1.html 正如你所看到的,这边框颜色只 ...
- IE 下JS和CSS 阻塞后面内容总结
总结: 1. CSS 都是可以并行下载的. 2. IE6 和 IE7 JS 不能并行下载,CSS 和 JS 阻塞后面内容下载. 3. IE8 JS 还是会阻塞图片下载 开始改变加载模式, ...
- IE和firefox火狐在JS、css兼容区别
1.firefox不能对innerText支持. firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了. ...
- js和css兼容问题
(一)html部分 1.H5新标签在IE9以下的浏览器识别 <!--[if lt IE 9]> <script type="text/javascript" s ...
- CSS简要内容
1. 简介 用于布局与美化网页(颜色,字体) CSS语言是一种标记语言,不需编译,可直接由浏览器执行 大小写不敏感 CSS定义由选择符.属性.属性取值组成 格式:selector{property:v ...
随机推荐
- node模块加载机制。
- 4 vuex的安装
安装可以看,引入又问题https://blog.csdn.net/u014196765/article/details/78022065?locationNum=9&fps=1(引入) htt ...
- Luogu4980 【模板】Polya定理(Polya定理+欧拉函数)
对于置换0→i,1→i+1……,其中包含0的循环的元素个数显然是n/gcd(i,n),由对称性,循环节个数即为gcd(i,n). 那么要求的即为Σngcd(i,n)/n(i=0~n-1,也即1~n). ...
- hdu 5274 Dylans loves tree (树链剖分 + 线段树 异或)
Dylans loves tree Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Othe ...
- Educational Codeforces Round 38 (Rated for Div. 2) C
C. Constructing Tests time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Logback日志存放路径的问题
问题: 将一个应用程序打成了Jar包后,使用命令运行jar包,发现日志存放的路径并不统一: 比如 hello.jar 包放在 /aaa/bbb 目录下 如果在 /aaa/bbb 目录下执行:java ...
- C++11 初始化
C++11 初始化 统一初始化语法 C++11新添加初始化列表 std::initializer_list<>类型,可以通过{}语法来构造初始化列表 .初始化列表是常数:一旦 ...
- MT【167】反复放缩
已知数列$\{a_n\}$满足:$a_1=1,a_{n+1}=a_n+\dfrac{a_n^2}{n(n+1)}$1)证明:对任意$n\in N^+,a_n<5$2)证明:不存在$M\le4$, ...
- MT【83】三个等号
分析:此类三个等式的一般做法先记为$t$,则有如下做法:
- 【Revit API】改变填充区域的填充样式
话不多说,直接上代码 var target = pattern.Target; var name = pattern.Name; var fpElem = FillPatternElement.Get ...