[css]处理文字溢出的方案

知识点

white-space、word-break、word-wrap

浏览器默认的换行规则

.default{
  white-space:normal;
  word-wrap:normal;
  word-break:normal;
}

默认情况下:
因为white-space:normal是默认值,css规范中要求会自动换行。HTML中文字长度如果超出外层边框是会自动换行的。
如果遇到一个长单词。浏览器会先尝试将长单词放在本行,如果文字超出了,那么会自动换到下一行。如果换行之后仍然超出,那就只能溢出了。

word-wrap与word-break的区别

  1. 首先来看word-break
    word-break 属性规定自动换行的处理方法。
属性值 描述
normal 使用浏览器默认的换行规则。
break-all 允许在单词内换行。
keep-all 只能在半角空格或连字符处换行。

2.再来看看word-wrap
word-wrap 属性允许长单词或 URL 地址换行到下一行。

属性值 描述
normal 只在允许的断字点换行(浏览器保持默认处理)。
break-word 在长单词或 URL 地址内部进行换行。
相同点

都与单词内换行有关系。事实上,word-wrap:break-wordword-break:break-all共同点是都能把长单词强行断句。

不同点

"不同点是word-wrap:break-word会首先起一个新行来放置长单词,新的行还是放不下这个长单词则会对长单词进行强制断句;而word-break:break-all则不会把长单词放在一个新行里,当这一行放不下的时候就直接强制断句了。"

解决方案

  1. 统一不换行,溢出则用省略号表示,css代码如下
.ellipsis{  
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;/*必须和overflow:hidden,连用才有效*/
}
  1. 自动换行+长单词内部换行,外层框自动承开。要求父级元素都没有高度限制。
{
word-break:break-all;
}

参考文献

  1. 你真的了解word-wrap和word-break的区别吗?
  2. 多行文本溢出显示省略号(…)全攻略
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是我报的网易微专业之《前端工程师》的第一篇课堂笔记,以后会多多的整理些课堂笔记给你们看,希望热爱前端的朋友们可...
    荷小音阅读 5,054评论 0 7
  • CSS3新特性中关于文本方面的内容不少,会有两节内容:文字渲染和文本格式。今天来谈谈最复杂的部分——文本格式。今天...
    荷小音阅读 4,601评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,763评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,818评论 0 11
  • 时间:2016年5月20号 在盒模型结束后,对于之前的文本样式和表格属性具体讲解了一些知识点,但是并不是重要的,只...
    旭先生阅读 3,744评论 0 1