标签 或者是
都可以
CSS控制Table单元格强制换行与强制不换行
我们知道Div的换行和不换行的css写法。但对于表格单元格只知道一个属性nowrap可以使其不换行。
近日有此需要,但发现加上nowrap在某些情况下还是会换行!无奈,没有一个强制不换行的方法吗?
用CSS实现Table单元格数据自动换行或不换行的实现方法:
1、强制换行:
.AutoNewline
{
Word-break: break-all;/*必须*/
}
自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行自动换行 |
2、强制不换行:
.NoNewline
{
word-break: keep-all;/*必须*/
}
不换行不换行不换行不换行不换行不换行不换行不换行不换行不换行 |
一.要想固定table的总的宽度和每列的宽度:
或在脚本中:
this.style.tableLayout = fixed
HTML
{ table-layout : sLayout }
Scripting
object.style.tableLayout [ = sLayout ]
可能的值:
sLayout
String设置或获取下面的值:
auto
缺省设置.列宽将设置为不可分割的最大的内容的宽度。
fixed
表的宽度和列的宽度固定,不随单元格中内容而改变
一.设置了各个列的宽,没有设表的宽:表的宽度等于各个列的宽度的和
二.设置了表的宽度,没有设各个列的宽度:各个列的宽度平均分配
三.要是都没设置宽度:表的宽度为100%,各个列的宽度平均分配
二.换行问题
有个attribute叫NOWRAP,可以控制每个单元格是否允许换行或者
this.noWrap = true
HTML
Scripting
object.noWrap [ = bWrap ]
可能的值:
bWrap
Boolean设置或获取一个下面的值:.
false
缺省值.允许单元格的单词字符回行.
true
不允许单元格回行,除非字符中含有”
”
Asp.net的DataGrid有个问题,它的Column有个属性ItemStyle.Wrap,设计是当这个列的ItemStyle.Wrap属性为true时,单元格允许回行,为false不允许回行,可是当设置了为false时输出到客户端的是这样的:
而不是
所以ItemStyle.Wrap属性是没有起作用的,请自己手工在DataGrid1_ItemDataBound事件中将不允许回行的那些单元增加个Attribute:nowrap=true。
privatevoid DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
e.Item.Cells[n].Attributes.Add("nowrap","true") ;
}
三.截断英文单词强行回行
上面两个方法可以把表格的宽度都固定了,每个单元是否允许回行都可以设定了,现在可能又会碰到一个问题,当允许回行的遇到比较长的英文单词,可能就超出了这个单元格的宽度,要是不把这个单词从中截断强行换行的话,这个单词的超出单元格宽的的部分将不被显示出来。所以需要在单词超出单元格长度的地方把单词强行截断回行。
可以利用css中的word-break风格来达到我们的目的:
或在脚本中:
this.style. wordBreak = break-all
HTML
{ word-break : sBreak }
Scripting
object.style.wordBreak [ = sBreak ]
可能的值:
sBreak
String设置或获取一个下面的值:
normal
缺省值.允许从每个词处回行。
break-all
不管在什么位置,超过列宽时就回行。
keep-all
不允许Chinese, Japanese,和Korean回行。这个功能类似与“normal”的非亚洲语言版本。