Skip to content

CSS 实现文本的单行和多行溢出省略效 #130

Description

@sisterAn

单行文本

.text {
  overflow: hidden; 
  text-overflow: ellipsis; 
  white-space: nowrap;
}
  • overflow: hidden(文字长度超出限定宽度,则隐藏超出的内容)
  • white-space: nowrap(设置文字在一行显示,不能换行)
  • text-overflow: ellipsis(规定当文本溢出时,显示省略符号来代表被修剪的文本)

多行文本(css)

.text {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis; 
}
  • -webkit-line-clamp: 2(用来限制在一个块元素显示的文本的行数, 2 表示最多显示 2 行。 为了实现该效果,它需要组合其他的WebKit属性)
  • display: -webkit-box(和 1 结合使用,将对象作为弹性伸缩盒子模型显示 )
  • -webkit-box-orient: vertical(和 1 结合使用 ,设置或检索伸缩盒对象的子元素的排列方式 )
  • overflow: hidden(文本溢出限定的宽度就隐藏内容)
  • text-overflow: ellipsis(多行文本的情况下,用省略号“…”隐藏溢出范围的文本)

多行文本(js)

  • 监听DOM尺寸变化
  • 判断是否溢出 scrollHeight > offsetHeight
  • 二分查找多行截取字符临界值(算法的解法:判断字符串是否溢出,二分查找字符串溢出临界子串,控制...显示)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions