css样式自动换行/强制换行

写样式时遇到的英文字符超出容器问题,度娘后了解下列知识,与大家分享,同时以便自己日后回顾。

一、自动换行问题

正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大。

下面介绍的是CSS如何实现换行的方法

对于div,p等块级元素

正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的 white-space:normal ,当定义的宽度之后自动换行
html:

<div id="wrap">正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义</div>

css:

#wrap{white-space:normal; width:200px; }

1.(IE浏览器)连续的英文字符和阿拉伯数字,使用word-wrap : break-word ;或者word-break:break-all;实现强制断行

#wrap{word-break:break-all; width:200px;}

或者

#wrap{word-wrap:break-word; width:200px;}

html:

<div id="wrap">abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div>

效果:可以实现换行

2.(Firefox浏览器)连续的英文字符和阿拉伯数字的断行,Firefox的所有版本的没有解决这个问题,我们只有让超出边界的字符隐藏或者,给容器添加滚动条

#wrap{word-break:break-all; width:200px; overflow:auto;}

html:

<div id="wrap">abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div>

效果:容器正常,内容隐藏

对于table

1. (IE浏览器)使用 table-layout:fixed;强制table的宽度,多余内容隐藏

<table style="table-layout:fixed" width="200">
    <tr>
        <td>abcdefghigklmnopqrstuvwxyz1234567890ssssssssssssss</td>
    </tr>
</table>

效果:隐藏多余内容

2.(IE浏览器)使用 table-layout:fixed;强制table的宽度,内层td,th采用word-break : break-all;或者word-wrap : break-word ;换行

<table width="200" style="table-layout:fixed;">
    <tr>
        <td width="25%" style="word-break : break-all; ">abcdefghigklmnopqrstuvwxy 1234567890</td>
        <td style="word-wrap : break-word ;">abcdefghigklmnopqrstuvwxyz 1234567890</td>
    </tr>
</table>

效果:可以换行

3. (IE浏览器)在td,th中嵌套div,p等采用上面提到的div,p的换行方法 (
技巧 )

4.(Firefox浏览器)使用
table-layout:fixed;强制table的宽度,内层td,th采用word-break :
break-all;或者word-wrap : break-word
;换行,使用overflow:hidden;隐藏超出内容,这里overflow:auto;无法起作用

<table style="table-layout:fixed" width="200">
    <tr>
        <td width="25%" style="word-break : break-all; overflow:hidden; ">abcdefghigklmnopqrstuvwxyz1234567890</td>
        <td width="75%" style="word-wrap : break-word; overflow:hidden; ">abcdefghigklmnopqrstuvwxyz1234567890</td>
    </tr>
</table>

效果:隐藏多于内容

 

二、CSS样式 强制不换行

CSS样式

强制不换行

div{ 
    white-space:nowrap; 
}

自动换行

div{  
    word-wrap: break-word;  
    word-break: normal;  
}

强制英文单词断行

div{ 
    word-break:break-all; 
}

CSS设置不转行:

overflow:hidden  隐藏

white-space:normal  默认

pre  换行和其他空白字符都将受到保护

nowrap  强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象

设置强行换行:

word-break:

normal ; 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行

break-all :  该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本

keep-all :  与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本与之间的高度解决办法

英文不换行

CSS里加上 word-break: break-all;
问题解决。这个问题只有IE才有,在FF下测试,FF可以自己加滚动条,这样也不影响效果

建议大家做Skin时,记得在body里加
word-break: break-all; 这样可以解决IE的框架被英文撑开的问题

以下引用word-break的说明,
注意word-break 是IE5+专有属性

语法:

word-break : normal | break-all | keep-all

参数:

normal :  依照亚洲语言和非亚洲语言的文本规则,允许在字内换行

break-all :  该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本

keep-all :  与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本

说明:

设置或检索对象内文本的字内换行行为。尤其在出现多种语言时。

对于中文,应该使用break-all 。

对应的脚本特性为wordBreak。

示例:  div {word-break : break-all; }

转载自:http://blog.csdn.net/ye987987/article/details/8011875

时间: 2024-11-09 19:08:48

css样式自动换行/强制换行的相关文章

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,那就是在主编辑区,遇到英文或数字字串(

css文字的强制换行和超出宽度省略变成点儿

一.文字换行 今天做div内部放文字时发现,不管我div设置多宽的属性,都会有div里面的字丁出去,不在div内部的状况,因此我就使用了css样式设置,强制将文字换行: 三种方式 1. word-break: break-all; 只对英文起作用,以字母作为换行依据. 2.word-wrap: break-word; 只对英文起作用,以单词作为换行依据. 3.white-space: pre-wrap; 只对中文起作用,强制换行. 二.禁止换行且超出部分省略 * 使用超出显示省略的时候,一定要给

css实现强制不换行/自动换行/强制换行

强制不换行 div{ white-space:nowrap; } 自动换行 div{ word-wrap: break-word; word-break: normal; } 强制英文单词断行 div{ word-break:break-all; } CSS设置不转行: overflow:hidden 隐藏white-space:normal 默认 pre 换行和其他空白字符都将受到保护nowrap 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象 设置强行换行:word-break

css控制div强制换行

div{white-space:nowrap;} 自动换行 div{ word-wrap: break-word; word-break: normal; } 强制英文单词断行 div{word-break:break-all;}

强制换行CSS样式

语法: word-wrap : normal | break-word 取值: normal :? 默认值.允许内容顶开指定的容器边界 break-word :? 内容将在边界内换行.如果需要,词内换行( word-break )也将发生 说明:设置或检索当当前行超过指定容器的边界时是否断开转行.此属性仅作用于有布局的对象,如块对象.内联要素要使用该属性,必须先设定对象的 height 或 width 属性,或者设定 position 属性为 absolute ,或者设定 display 属性为

CSS 强制换行和禁止换行强制换行 和禁止换行样式

强制换行 1.word-break: break-all;       只对英文起作用,以字母作为换行依据. 2.word-wrap: break-word;   只对英文起作用,以单词作为换行依据. 3.white-space: pre-wrap;     只对中文起作用,强制换行. 禁止换行 white-space:nowrap; overflow:hidden; text-overflow:ellipsis; 原文地址:https://www.cnblogs.com/webenh/p/11

CSS强制换行

CSS强制换行 近来在项目中又遇上讨厌的换行问题,所以不得不又google一下,总算完成了任务.对于CSS不熟悉的朋友可以学习以下的文字.以下内容来自网络,欢迎相互交流. 自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法对于div,p等 块级元素正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行html<div id="wrap">

CSS实现强制换行-------Day 78

其实最早的时候也考虑过这个问题,当时还在想需要判定文字的长度么,实在是傻到极点了,原来CSS中本来就有这个样式设置的.而今天正好看到了有这么一篇介绍,仔细看了下,感觉还不错,这里也把实验的结果记录下. 初始阶段: <span style="font-family:SimSun;font-size:12px;"><div style="width:200px;height:50px;background:yellow;">comedycooki

css之——如何让文字强制换行

我们在编写html时, 有时候,常常需要在移动端用到一些table的属性,来呈现一些数据.如果说我们的数据内不含连续的数字或字母时,显示是不会出错的. 例: 可是如果我们要呈现的数据为数字或长字母信息时,常常会出现这样的情况. 例: 文字并没有像我们预期那样换行,设置的宽度无效了. 这是什么原因呢? 原因就是浏览器在解析我们页面的时候,如果我们给定他连续的数字或字母,浏览器不会分开解析,而是会直接将这一长串当成一个单词,因此我们设置的宽度就失效了,不会自动切断字符串而进行换行. 解决方案: 如果