当前位置:首页 > 开发 > Web前端 > Css > 正文

css table文本换行

发表于: 2012-06-13   作者:blackproof   来源:转载   浏览次数:
摘要: 转:http://www.zhiwenweb.cn/Category/Website/1086.html   CSS控制文本内容换行:word-wrap,word-break,white-space,text-overflow的区别和用法在div中,文本布局经常出现,换行混乱的情况。我们经常遇到的问题表现为:      &n

转:http://www.zhiwenweb.cn/Category/Website/1086.html

 

CSS控制文本内容换行: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


区别分析:

word-break:break-all和word-wrap:break-word都是能使其容器如DIV的内容自动换行。它们的区别就在于:

1,word-break:break-all 例如div宽200px,它的内容就会到200px自动换行,如果该行末端有个英文单词很长(congratulation等),它会把单词截断,变成该行末端为conra(congratulation的前端部分),下一行为tulation(conguatulation)的后端部分了。

2,word-wrap:break-word 例子与上面一样,但区别就是它会把congratulation整个单词看成一个整体,如果该行末端宽度不够显示整个单词,它会自动把整个单词放到下一行,而不会把单词截断掉的。

3,word-break;break-all 支持版本:IE5以上 该行为与亚洲语言的 normal 相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本。 WORD-WRAP:break-word 支持版本:IE5.5以上 内容将在边界内换行。如果需要,词内换行( word-break )也将发生。表格自动换行,避免撑开。 word-break : normal | break-all | keep-all 参数: normal : 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行 break-all : 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本 keep-all : 与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本 语法: word-wrap : normal | break-word 参数: normal : 允许内容顶开指定的容器边界 break-word : 内容将在边界内换行。如果需要,词内换行(word-break)也行发生说明:设置或检索当当前行超过指定容器的边界时是否断开转行。

对应的脚本特性为wordWrap。请参阅我编写的其他书目。 语法: table-layout : auto | fixed 参数: auto : 默认的自动算法。布局将基于各单元格的内容。表格在每一单元格读取计算之后才会显示出来。速度很慢 fixed : 固定布局的算法。在这算法中,水平布局是仅仅基于表格的宽度,表格边框的宽度,单元格间距,列的宽度,而和表格内容无关说明:设置或检索表格的布局算法。对应的脚本特性为tableLayout。

个人看法:word-break 用3C检测会显示问题的,这个属性OPERA FIREFOX 浏览器也不支持。word-break属性可以用white-space:normal;来代替,这样在FireFox和IE下就都能正确换行,而且要注意,单词间的空格不能用 来代替,不然不能正确换行。

 

css table文本换行

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
作者:zccst 总结了一下,只要在CSS中定义了如下句子,可保网页不会再被撑开了。 table{table-layout
Eclipse换行主要有3个方面 格式化时编辑器文本换行 源代码注释文本换行 Eclipse控制台console显示文
word-wrap: word-wrap的项有: normal:默认,单词太长会超出容器宽度 break-word: 自动进行单词内
作者: Scott Mitchell 概述 在此之前我已经在4Guys网站上写过两篇和此文章关联的文章,分别为:ASP
CSS一直都是我的薄弱项,今天看到一个很漂亮的Table CSS样式,这里就把它拿来分享一下,以备后用. /*表
text-ellipsis:ellipsis; 主要用来控制文本超过指定的内容宽度后超过部分以...省略号的形式显示 需
透过 CSS 的方式 让英文字的换行正确 <zk> <style> .no-hidden .z-row-cnt { overflow:v
关于JLabel文本框内的文字换行 1,首先假设在设计一款游戏的时候,游戏首页的菜单栏里会有一个关于
如下图所示,当一个定义了宽度的DIV或者其他元素中填充的全部为纯英文或者纯数字的时候,在IE和火狐
CSS文本 CSS文本属性可以定义文本外观,通过文本属性,可以改变文本的颜色、字符间距、对齐文本、装
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号