CSS 中的强制换行和禁止换行

强制换行
      1、word-break: break-all;       只对英文起作用,以字母作为换行依据。
      2、word-wrap: break-word;   只对英文起作用,以单词作为换行依据。
      3、white-space: pre-wrap;     只对中文起作用,强制换行。
 
禁止换行
      white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
 
Jimdo系统在设计上一直存在一个BUG,那就是在主编辑区,遇到英文或数字字串(比如网址)时,没有设置强制换行,造成页面被撑破,用IE6浏览时,常看到内容错位,非常影响网站的美观。另一方面,对二分栏结构的网站,在侧栏放一些文章标题时,如果标题过长它又是自动换行的,也影响版面的美观。

      在CSS里,主要有强制换行和禁止换行。

一、强制换行

      1、word-break: break-all;       只对英文起作用,以字母作为换行依据。
      2、word-wrap: break-word;   只对英文起作用,以单词作为换行依据。
      3、white-space: pre-wrap;     只对中文起作用,强制换行。

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

1、word-break:break-all

      假设div宽度为450px,它的内容就会到450px自动换行,如果该行末端有个很长的英文单词,它会把单词截断,一部分保持在行尾,另一部分换到下一行。

2、word-wrap:break-word 

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

      各自的效果演示如下:

<div style="width:450px; word-break: break-all;">
      Jimdo系统在设计上一直存在一个BUG,那就是在主编辑区,遇到英文JimdoJimdo或数字字串(比如网址)时,没有设置强制换行,造成页面被撑破,内容错位,非常影响网站的美观。
</div>

Jimdo系统在设计上一直存在一个BUG,那就是在主编辑区,遇到英文JimdoJimdo或数字字串(比如网址)时,没有设置强制换行,造成页面被撑破,内容错位,非常影响网站的美观。
 

<div style="width:450px; word-wrap: break-word;">
      Jimdo系统在设计上一直存在一个BUG,那就是在主编辑区,遇到英文JimdoJimdo或数字字串(比如网址)时,没有设置强制换行,造成页面被撑破,内容错位,非常影响网站的美观。
</div>

Jimdo系统在设计上一直存在一个BUG,那就是在主编辑区,遇到英文JimdoJimdo或数字字串(比如网址)时,没有设置强制换行,造成页面被撑破,内容错位,非常影响网站的美观。
 

<div style="width:450px; white-space: pre-wrap;">
      Jimdo系统在设计上一直存在一个BUG,那就是在主编辑区,遇到英文JimdoJimdo或数字字串(比如网址)时,没有设置强制换行,造成页面被撑破,内容错位,非常影响网站的美观。
</div>

Jimdo系统在设计上一直存在一个BUG,那就是在主编辑区,遇到英文JimdoJimdo或数字字串(比如网址)时,没有设置强制换行,造成页面被撑破,内容错位,非常影响网站的美观。
 

      呵呵,我们看到的效果,好象并不是所说的那样,可能是现在浏览器的版本不同了吧。一般地说,对于强制换行,用word-wrap: break-word; 就可以了。

二、禁止换行

      white-space:nowrap; overflow:hidden; text-overflow:ellipsis;

      white-space:nowrap; 是禁止换行。

      overflow:hidden; 是让多出的内容隐藏起来,否则多出的内容会撑破容器。

      text-overflow:ellipsis; 让多出的内容以省略号...来表达。但是这个属性主要用于IE等浏览器,Opera浏览器用-o-text-overflow:ellipsis; 而Firefox浏览器没有这个功能,多出的内容只能隐藏起来。

      下面看下效果演示:

      <div style="width:455px;white-space:nowrap; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; ">

text-overflow:ellipsis; 让多出的内容以省略号...来表达。但是这个属性主要用于IE等浏览器,Opera浏览器用-o-text-overflow:ellipsis; 而Firefox浏览器没有这个功能,多出的内容只能隐藏起来。

      </div>

三、CSS换行代码在Jimdo上的应用

1、强制换行

      关于Jimdo上强制换行的问题,诸葛草帽已经很好地解决了这个问题,感兴趣的朋友可以去看一下,具体地址: http://zhugecaomao.jimdo.com/2010/09/06/jimdo-skill-comment-bolg/。

2、禁止换行

      禁止换行主要用于分栏结构的模板,在侧栏上添加一些标题性的内容时,有时内容过多换行反而显得不美观,如我这个侧栏上的“博文导读”就是这样:

      另外,有的朋友喜欢在侧栏上用“RSS Feed”调用最新博文,也会出现同样的问题,如下图:

      下面就来讨论一下解决的方法。

      我这个“博文导读”是手工编辑的,用的是UL列表,在CSS对它进行了设置,在页面上修改内容相当方便。要对它禁止换行,只要在CSS里修改一下li即可,具体代码是:

li {float:left; line-height: 22px;padding-left:0px;width:235px; white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;overflow:hidden;}

      主要是添加了红色代码,其中width:235px要根据具体版面进行修改。

      对于“RSS Feed”,可以采用同样的方法进行修改,在CSS里添加以下代码即可:

.rssFeed{width: 235px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-o-text-overflow:ellipsis;}

      修改以后的效果如下图:

      如果采用的是系统模板,不方便对CSS直接进行修改的话,可以将上CSS代码加到网页的“HEAD”中,效果是一样的,具体方法是:

<style type="text/css">
<!--
CSS代码
-->
</style>

posted @ 2014-08-09 15:49  技术狂  阅读(5326)  评论(0编辑  收藏  举报