摘要:前言在工作中我们经常会遇到,文字过多,需要用省略号,并且鼠标的时候还需要显示全部的文字的需求。还记得的作用不就是第二步中确定是否溢出用的。方法二在标签内部再包裹一个标签,标签在时显示。
在工作中我们经常会遇到,文字过多,需要用省略号,并且鼠标hover的时候 还需要 显示全部的文字的需求。
.ellipsis { width: 100%; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; display: inline-block //块级标签不需要 }
如何得知这个是否溢出呢?关键词:clientWidth 和scrollWidth: 代码奉上:
// 我是在react中实现 componentDidMount () { // 在did mount 中判断是否溢出 const node = this.ref.current // 判断的dom节点,使用ref const clientWidth = node.clientWidth const scrollWidth = node.scrollWidth if (clientWidth < scrollWidth) { this.setState({ // 把是否溢出的状态存在state中,之后从state中拿值使用 overflow: true }) } } // 在普通js中实现,方法一样,取到dom,判断clientWidth 和scrollWidth
<span className={`${styles.detail} ${styles.ellipsis}`} ref={this.departmentRef} data-customer={overflow ? department : null}>{department}span> // 关注data-customer 属性,这个属性在有溢出时候赋值,无溢出时候为null。 还记得ref的作用不?就是第二步中确定是否溢出用的。
.ellipsis { // 第一步溢出的代码 display: inline-block; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; width: 255px; } .ellipsis[data-customer]:hover::after { // 关键代码,伪类实现 content: attr(data-customer); position: absolute; background: #F2F2F2; border: 1px solid #E5E5E5; box-shadow: 0 2px 4px 0 rgba(56,62,71,0.10); border-radius: 2px; padding: 2px 6px; font-size: 13px; color: #202332; top:106px; // 设置位置 left: 10px; // 设置位置 max-width: 90%; word-break: break-word; // 如果一个单词太长,则截断 CSS 属性word-break
指定了怎样在单词内断行。 white-space: normal;// 可以换行white-space
CSS 属性是用来设置如何处理元素中的空白。 }
<span ref={this.ref} style={{display: inline-block}} className={overflow ? overFlowText : }>
{tableTitle} {overflow ? (<span className=overflowSpan>{tableTitle}span>) : null} span> // 关键代码是那个三元~
.overflow{ position: relative } .overflow .overflowSpan { display: none } .overflow:hover .overflowSpan{ display: block; position: absolute; top: 10px;
left: 0px;
}
参考链接: https://stackoverflow.com/questions/2011142/how-to-change-the-style-of-the-title-attribute-inside-an-anchor-tag
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/1577.html
摘要:需求该列展示文本的单元格宽度固定,文本超出部分显示为,当把鼠标移到文字上时,展示完整信息。效果没有获得焦点时获得焦点时另一种实现方案利用属性部分必须必须必须部分如果您把光标移动到下面上,就能够看到全部文本。 背景: 在列表中展示文本信息,但是有的文本信息过长,大部分则较短,若是不加控制,完全显示文本信息,列表会被撑开,很不美观。 需求: 该列展示文本的单元格宽度固定,文本超出部分显示为...
摘要:一行数据文本内容太多,把页面撑得很长影响美观。该方法可以实现当一行文本内容超过固定长度后,收缩起来,显示一个展开按钮,用户一点击后就显示全部内容。 一行数据文本内容太多,把页面撑得很长影响美观。该方法可以实现当一行文本内容超过固定长度后,收缩起来,显示一个展开按钮,用户一点击后就显示全部内容。当然多行文本也同样适用,(若是全部是中文也可以使用判断判断字符串长度的方法,中文占用两个字符,...
摘要:一行数据文本内容太多,把页面撑得很长影响美观。该方法可以实现当一行文本内容超过固定长度后,收缩起来,显示一个展开按钮,用户一点击后就显示全部内容。 一行数据文本内容太多,把页面撑得很长影响美观。该方法可以实现当一行文本内容超过固定长度后,收缩起来,显示一个展开按钮,用户一点击后就显示全部内容。当然多行文本也同样适用,(若是全部是中文也可以使用判断判断字符串长度的方法,中文占用两个字符,...
摘要:一行数据文本内容太多,把页面撑得很长影响美观。该方法可以实现当一行文本内容超过固定长度后,收缩起来,显示一个展开按钮,用户一点击后就显示全部内容。 一行数据文本内容太多,把页面撑得很长影响美观。该方法可以实现当一行文本内容超过固定长度后,收缩起来,显示一个展开按钮,用户一点击后就显示全部内容。当然多行文本也同样适用,(若是全部是中文也可以使用判断判断字符串长度的方法,中文占用两个字符,...
阅读 713·2023-04-25 19:43
阅读 3910·2021-11-30 14:52
阅读 3784·2021-11-30 14:52
阅读 3852·2021-11-29 11:00
阅读 3783·2021-11-29 11:00
阅读 3869·2021-11-29 11:00
阅读 3558·2021-11-29 11:00
阅读 6105·2021-11-29 11:00