您的位置:首页 > Web前端 > CSS

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

2014-08-09 15:49 344 查看
强制换行
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: