自动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是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;}
<div id="wrap">abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div>
效果:可以实现换行
2.(Firefox浏览器)连续的英文字符和阿拉伯数字的断行,Firefox的所有版本的没有解决这个问题,我们只有让超出边界的字符隐藏或者,给容器添加滚动条
#wrap{word-break:break-all; width:200px; overflow:auto;}
<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; ">abcdefghigklmnopqrstuvwxyz 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>
效果:隐藏多于内容
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。
在table中加入
style="table-layout:fixed;"
在td中加入
style="word-break : break-all;overflow:hidden;"
回答人的补充 2010-09-08 15:24
<br>为自动换行常常与</br>配对使用/。
<nobr>不换行显示文本。
nobr在 Internet Explorer 4.0 及以上版本的 HTML 和脚本中可用。
nobr不改变显示。
nobr元素需要关闭标签,即<nobr></nobr>成对出现。
<wbr />软换行1.正常情况下<wbr />不起效,何为不正常,见下。2.当文字长度超过外框显示宽度的时候,即溢出时。3.游览器启动自动断行机制,各个游览器断行机制不同。比如ff3会在/前断行,ie7在/后断行等等。4.当自动断行机制也无法避免溢出时,<wbr />起效,效果如<br />。 5.如果还是溢出的话,就只有溢出了。可以说这个标签是最后的杀手锏,属于要么不出手,出手必伤人。注:有些游览器不能有效识别<wbr />标签,所以不推荐使用不过如果这些不支持的游览器却支持CSS2的:after伪类则可以用一下方法实现
在html中控制自动换行
其实只要在表格控制中添加一句
<td style="word-break:break-all">就搞定了。
其中可能对英文换行可能会分开一个单词问题:解决如下:
语法:
word-break : normal | break-all | keep-all
参数:
normal : 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行
break-all : 该行为与亚洲语言的normal相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本
keep-all : 与所有非亚洲语言的normal相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本
<br>是软回车,就是换行后还是紧接着上一行,没有</br>
<p>是段落标签,由于例如居中、缩进等标签都是以段落为单位的,所以它可比<br>有更多作用,但每次换行都会多空一行,有</p>
除此之外,例如表格、表单、水平线等都是强制换行,就是紧接着的标签前无论有没有换行标签,都强制换行。
<html>
<head>
<title></title>
<meta content='text/html; charset=gb2312' http-equiv='Content-Type'>
</head>
<body bgcolor=#f5f5ff>
<pre>
<font size=2 face=宋体>
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all">
<tr>
<td style="WORD-BREAK: break-all; WORD-WRAP: break-word">
文本正文
</td>
</tr>
</table>
</pre>
</FONT>
</body>
</html>
相关推荐
js 特效 html 特效 textarea是否自动换行
此外,我们还可以使用JLabel的html支持来实现自动换行。JLabel支持HTML语法,我们可以使用HTML的 标签来添加换行符号。 实现JLabel中的内容自动换行需要计算文本的宽度,并将其与JLabel的宽度进行比较,然后在...
HTML 中表格 TD 内容自动换行 HTML 中让表格 TD 中的多余字体自动换行是前端开发中常见的问题。今天,我们将讨论如何使用 CSS 来控制 TD 中的换行。 强制不换行 在 IE 的 TD 中,如果我们没有指定宽度,使用 `...
"button自适应高度和自动换行"这个主题主要关注如何让按钮在不同屏幕尺寸和内容长度下保持良好的视觉效果。以下是对这个主题的详细解释: 一、自适应高度 1. CSS Flexbox:使用Flexbox布局模型可以轻松实现按钮的...
在许多应用场景中,例如聊天应用、编辑器或表单填写,我们需要实现文本框的自动换行功能,使得当用户输入的字符超过一行的宽度时,文本能够自动跳转到下一行,就像微信的输入框那样。这个特性对于提升用户体验至关...
在 `图片自动换行.html` 文件中,我们需要创建对应的HTML结构,将图片包裹在带有指定类名的 `div` 元素中: ```html 图片1"> 图片2"> <!-- 更多图片项... --> ``` 这样,我们就实现了DIV CSS的图片...
1、解决HTML转pdf 中文、数字、英文不能换行的问题,修改的源码包 重新计算了右边距。 2、html转pdf 参考我的另外一篇博文https://blog.csdn.net/qq_38616723/article/details/125188407?spm=1001.2014.3001.5502
### 英文自动换行解决方案 #### 一、引言 在网页布局和文档排版中,文本的换行处理是一项基本但非常重要的任务。合理的换行策略不仅可以提高阅读体验,还能有效利用空间资源。然而,在处理英文文本尤其是包含长...
它提供了自动换行的功能,同时还可以处理富文本(HTML格式),支持插入图片、表格等复杂内容。通过`setAcceptRichText(true)`,可以启用富文本模式;若只需显示不可编辑的文本,可以设置`setReadOnly(true)`。 在...
html 字符串自动换行html 字符串自动换行
### CSS文字自动换行 #### 知识点一:CSS自动换行的原理与方法 在Web开发中,实现文本的自动换行是一项常见的需求。本文档主要介绍了如何利用CSS来实现不同浏览器环境下的自动换行功能,并特别关注了对老旧浏览器...
【标题】"jsp页面Table自动换行"涉及的是在JavaServer Pages (JSP) 技术中处理HTML表格(Table)的布局问题。在网页设计中,表格的换行通常是由于表格内容过多,超过了容器(如div或浏览器窗口)的宽度,导致表格...
然而,Canvas API本身并不支持文本的自动换行,这意味着开发者需要自己编写代码来实现这一功能。本文将详细介绍如何使用JavaScript编写一个函数,实现在Canvas上绘制文本内容时自动换行。 首先,我们需要理解Canvas...
`core-renderer.jar` 是一个专为此目的设计的Java库,它能够将HTML内容转换成PDF,并且针对中文字符提供自动换行功能,同时还能保留CSS样式,从而保持原始网页的视觉效果。 1. **HTML转PDF**: HTML是一种标记语言,...
而"可以自动换行的ViewGroup"则是指一种特殊的布局管理器,它允许子视图(Views)在达到容器边界时自动换行,以适应不同屏幕尺寸和布局需求。这种功能在创建动态、可扩展的用户界面时非常实用。 在Android中,我们...
本篇文章针对的就是这个常见的问题,即如何设置表格单元格宽度后,当内容太多无法完整显示时,可以实现自动换行的效果。 在HTML中,表格的布局和样式控制通常依赖于CSS。为了实现内容的自动换行,我们需要对table和...
总结来说,创建一个“可编辑并且能够自动换行的div”需要结合 HTML 的 `contenteditable` 属性,CSS 的 `word-wrap` 或 `overflow-wrap` 属性,以及可能的 JavaScript 事件监听和动态调整。这样的实现方式可以提供一...
我们使用了html2canvas库将id为text的div元素转换为canvas元素,并将canvas元素转换为...同时,我们使用了CSS样式控制文字的换行。最后,我们在页面上添加了一个按钮,点击按钮即可将文字转换为图片并显示在页面上。
在`Android Flowlayout`中,当一行无法容纳更多的子视图时,它们会自动换行到下一行,类似于HTML中的`<div>`布局或者CSS的`display: flex`。这种布局方式使得开发者无需精确计算每个子视图的位置和大小,而是由...