word-wrap,word-break,white-space,text-overflow的区别和用法

在div中,文本布局经常出现,换行混乱的情况。
问题表现:1.如果是全英文字符串,中间不包含任何符号(包括空格),不自动换行. 
          2.中英文混写,则在英文字符串的开始处换行(英文长度>div长度),结尾处不换行。 
          3.英文整个单词换行。等等,可能还有一些问题,这里只列出了常见的几个;

介绍上面几个css属性功能的简单用法; 
word-wrap:normal | break-word; (内容换行)
         normal:默认的属性值.(允许内容顶开指定的容器边界). 
         break-word:内容将在边界内换行(不截断英文单词换行,截断英文单词下面的属性才具备这个功能。)

word-break:normal | break-all | keep-all (词内换行)
           normal:如果是中文则到边界处的汉字换行,如果是英文整个词换行,注意:如果出现某个英文字符串长度超过边界,则后面的部分将撑开边框,如果边框为固定属性,则后面部分将无法显示. 
           break-all : 强行换行,将截断英文单词 
           keep-all : 不允许字断开。如果是中文将把前后标点符号内的一个汉字短语整个换行,英文单词也整个换行,注意:如果出现某个英文.字符串长度超过边界,则后面的部分将撑开边框,如果边框为固定属性,则后面部分将无法显示.

text-overflow:clip | ellipsis (文本溢出)
             clip :  不显示省略标记(...),而是简单的裁切
             ellipsis :  当对象内文本溢出时(超过width部分)显示省略标记(...)

white-space: normal | pre | nowrap (内容不换行)
normal 默认。空白会被浏览器忽略。 
pre 空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。 
nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。 
(层中放一个表格,如果层的float:none 则表格和层间会有空隙,这种问题的解决办法是在层的style里面加上white-space: nowrap)


使用方式: word-break:break-all;

一般情况下: 
.body{ 
       word-wrap:break-word; 
       word-break:keep-all; 
       overflow:hidden; 
}

.css{
      text-overflow:ellipsis;
      white-space:nowrap;
      overflow:hidden;
}

IE与Firefox将它看成是一个长单词了,因此不会自动换行。 
对于IE,可以通过IE专有的CSS属性word-wrap即可实现自动换行:word-wrap:break-word;

对于Firefox,CSS2标准并没有定义类似word-wrap的属性,可以通过overflow属性将撑出的部分隐藏:overflow:hidden

 

 

换行问题:此代码可以看出 火狐和IE的区别

word-break 火狐不识别

 

<html>

<head></head>

<body>

<style>

.c1{ width:300px;   border:1px solid red}

.c2{ width:300px;word-wrap:break-word;   border:1px solid yellow}

.c3{ width:300px;word-wrap:break-word;word-break:break-all;   border:1px solid green}

.c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue}

.c5{ width:300px;word-break:break-all;   border:1px solid black}

.c6{ width:300px;word-break:keep-all;   border:1px solid red}

.c7{ width:300px;word-wrap:break-word;overflow:auto;   border:1px solid yellow}

</style> 

.c1{ width:300px;   border:1px solid red}

<div class="c1">

safjaskflasjfklsajfklasjflksajflksjflkasjfksafj

</div>

<div class=c1>

This is all English. This is all English. This is all English.

</div>

<div class=c1>

全是中文的情况???????????????????????????????????????????????????????????????????????????/

</div>

<div class=c1>

中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. 

</div> 

<br>

.c2{ width:300px;word-wrap:break-word; border:1px solid yellow}

<div class="c2">

safjaskflasjfklsajfklasjflksajflksjflkasjfksafj

</div>

<div class=c2>

This is all English. This is all English. This is all English.

</div>

<div class=c2>

全是中文的情况???????????????????????????????????????????????????????????????????????????/

</div>

<div class=c2>

中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. 

</div>

<br>

.c3{ width:300px;word-wrap:break-word;word-break:break-all;   border:1px solid green}

<div class="c3">

safjaskflasjfklsajfklasjflksajflksjflkasjfksafj

</div>

<div class=c3>

This is all English. This is all English. This is all English.

</div>

<div class=c3>

全是中文的情况???????????????????????????????????????????????????????????????????????????/

</div>

<div class=c3>

中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. 

</div> 

<br>

.c4{ width:300px;word-wrap:break-word;word-break:keep-all; border:1px solid blue}

<div class="c4">

safjaskflasjfklsajfklasjflksajflksjflkasjfksafj

</div>

<div class=c4>

This is all English. This is all English. This is all English.

</div>

<div class=c4>

全是中文的情况???????????????????????????????????????????????????????????????????????????

</div>

<div class=c4>

中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. 

</div>

<br>

.c5{ width:300px;word-break:break-all;   border:1px solid black}

<div class="c5">

safjaskflasjfklsajfklasjflksajflksjflkasjfksafj

</div>

<div class=c5>

This is all English. This is all English. This is all English.

</div>

<div class=c5>

全是中文的情况???????????????????????????????????????????????????????????????????????????

</div>

<div class=c5>

中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. 

</div>

<br>

.c6{ width:300px;word-break:keep-all;   border:1px solid red}

<div class="c6">

safjaskflasjfklsajfklasjflksajflksjflkasjfksafj

</div>

<div class=c6>

This is all English. This is all English. This is all English.

</div>

<div class=c6>

全是中文的情况???????????????????????????????????????????????????????????????????????????

</div>

<div class=c6>

中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. 

</div>

<br>

.c7{ width:300px;word-wrap:break-word;overflow:auto;   border:1px solid yellow}

<div class="c7">

safjaskflasjfklsajfklasjflksajflksjflkasjfksafj

</div>

<div class=c7>

This is all English. This is all English. This is all English.

</div>

<div class=c7>

全是中文的情况???????????????????????????????????????????????????????????????????????????/

</div>

<div class=c7>

中英文混排的情况。Chinese and English. 中英文混排的情况。Chinese and English. 

</div>

</body>

</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值