label里的文字如何换行啊??

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了label里的文字如何换行啊??相关的知识,希望对你有一定的参考价值。

label标签里面的文字可以使用“<br>”换行。

1、新建html文档,在body标签中添加label标签,这时文字将会在一行中显示:

2、在label标签中添加更多的文字,这时如果文字数量超过了浏览器一行可以显示的最大数量,label标签里面的文字将会自动换行:

3、如果label里面的文字过少,可以使用“<br>”标签使label里面的文字换行:

参考技术A   第一种是把Label的AutoSize属性设为False,手动修改Label的大小.这样的好处是会因内容的长度而自动换行,但是当内容的长度超过所设定的大小时,多出的内容就会无法显示.因此,这种方法适合于基本确定内容长度的时候使用.

  第二种是把Label的Dock设为FILL,同时将AutoSize属性设为False,这种方法可将上面所说的缺点修正,但是同时Label会将其它控件的位置霸占,影响布局.因此,在使用该方法时,最好给Label加上个Panel或GroupBox控件.

  第三种是通过判断内容的长度,动态设置Label的大小.具体程序如下(Label控件取名为Label1,显示内容的字符串为str):
  int LblNum = str.Length; //Label内容长度
  int RowNum = 10; //每行显示的字数
  float FontWidth = label1.Width / label1.Text.Length; //每个字符的宽度
  int RowHeight=15; //每行的高度
  int ColNum = (LblNum - (LblNum / RowNum) * RowNum) == 0 ? (LblNum / RowNum) : (LblNum / RowNum) + 1; //列数
  label1.AutoSize = false; //设置AutoSize
  label1.Width = (int)(FontWidth * 10.0); //设置显示宽度
  label1.Height = RowHeight * ColNum; //设置显示高度

  通过这种方法可以令Label每行所显示的字数得到控制,同时也动态的生成的所对应的行数,这对于排版有很大的好处,但是如果显示内容过多,该方法也会令多出来的内容无法显示.因此,对于显示内容过长的时候,可以在外层加上Panel或GroupBox,设置AutoScroll为true,这样就不会因为太长而导致Label高度扩大而影响其它控件的布局,同时也可以更好地显示完整的内容。
参考技术B 加上\n,亲测有用!(汉字中间都可以) 参考技术C

1、新的html文档,body标签中添加label标签,如图所示,此时文本将显示在一行中。

2、在label标签中加入更多文字,如果文字数超过浏览器行可以显示的最大数目,label标签内文字会自动换行。

3、最后,如果label标签对的文字过少,如图所示,就会可以使用“<br>”标签使label里面的文字换行,这样操作即可。

参考技术D 换行符:\n

dw做的一个网页,调用数据库的内容,英文字母为啥不能自动换行啊?

如题,我在网上查了几个解决办法,如http://zhidao.baidu.com/question/8363109.html和http://zhidao.baidu.com/question/41388174.html?fr=qrl
但是均不能解决问题,这是为什么啊?
请高手指教一下,谢谢了!在线等,解决了立即奉上分数!

动换行问题,正常字符的换行是比较合理的,而连续的数字和英文字符常常将容器撑大,挺让人头疼,下面介绍的是CSS如何实现换行的方法

对于div,p等块级元素
正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义的宽度之后自动换行
html
<div id="wrap">正常文字的换行(亚洲文字和非亚洲文字)元素拥有默认的white-space:normal,当定义</div>
css
#wrapwhite-space:normal; width:200px;

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

#wrapword-break:break-all; width:200px;
或者
#wrapword-wrap:break-word; width:200px;

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

效果:可以实现换行

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

#wrapword-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>

效果:隐藏多于内容

5.(Firefox浏览器) 在td,th中嵌套div,p等采用上面提到的对付Firefox的方法
运行代码框
最后,这种现象出现的几率很小,但是不能排除网友的恶搞。如果有什么问题请到我的留言本提出

下面是提到的例子的效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>字符换行</title>
<style type="text/css">
table,td,th,div border:1px green solid;
code font-family:"Courier New", Courier, monospace;
</style>
</head>
<body>
<h1><code>div</code></h1>
<h1><code>All white-space:normal;</code></h1>
<div style="white-space:normal; width:200px;">Wordwrap still occurs in a td element that has its WIDTH attribute set to a value smaller than the unwrapped content of the cell, even if the noWrap property is set to true. Therefore, the WIDTH attribute takes precedence over the noWrap property in this scenario</div>

<h1><code>IE \ word-wrap : break-word ;</code></h1>
<div style="word-wrap : break-word ; width:200px;">abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div>
<h1><code>IE \ word-break:break-all;</code></h1>
<div style="word-break:break-all;width:200px;">abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div>

<h1><code>Firefox/ word-break:break-all; overflow:auto;</code></h1>
<div style="word-break:break-all; width:200px; overflow:auto;">abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div>
<h1><code>table</code></h1>
<h1><code>table-layout:fixed;</code></h1>
<table style="table-layout:fixed" width="200">
<tr>
<td>abcdefghigklmnopqrstuvwxyz1234567890ssssssssssssss</td>
</tr>
</table>
<h1><code>table-layout:fixed; word-break : break-all; word-wrap : break-word ;</code></h1>
<table width="200" style="table-layout:fixed;">
<tr>
<td width="25%" style="word-break : break-all; ">abcdefghigklmnopqrstuvwxyz1234567890ssssssssssssss</td>
<td style="word-wrap : break-word ;">abcdefghigklmnopqrstuvwxyz1234567890ssssssssssssss</td>
</tr>
</table>
<h1><code>FF \ table-layout:fixed; overflow:hidden;</code></h1>
<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>
</body>
</html>
参考技术A 解决FF和IE长字符串撑开父容器,不折行问题

参考资料:http://www.u6u8.net/blog/article.asp?id=878

本回答被提问者采纳
参考技术B 你把表格的宽度 的值限定 在试试看

以上是关于label里的文字如何换行啊??的主要内容,如果未能解决你的问题,请参考以下文章

dw做的一个网页,调用数据库的内容,英文字母为啥不能自动换行啊?

VB中label控件的文字换行

VB中label控件的文字换行

如何取出label显示的文字的行数

表格里如何自动换行?

电子表格文字怎么换行?