table的宽度,单元格内换行问题

一.     要想固定table的总的宽度和每列的宽度:

 

<TABLE id="Table1" style="TABLE-LAYOUT:fixed" border="1">

或在脚本中:

this.style.tableLayout = fixed

 

HTML

{ table-layout : sLayout }

Scripting

object.style.tableLayout [ = sLayout ]


可能的值:

 

sLayout

String 设置或获取下面的值:

auto

缺省设置. 列宽将设置为不可分割的最大的内容的宽度。

fixed

表的宽度和列的宽度固定,不随单元格中内容而改变

一.     设置了各个列的宽,没有设表的宽:表的宽度等于各个列的宽度的和

二.     设置了表的宽度,没有设各个列的宽度:各个列的宽度平均分配

三.     要是都没设置宽度:表的宽度为100%,各个列的宽度平均分配

 

二.     换行问题

<td>有个attribute NOWRAP,可以控制每个单元格是否允许换行

 

<TD nowrap=true>

或者

this.noWrap = true

 

HTML

<ELEMENT NOWRAP ... >

Scripting

object.noWrap [ = bWrap ]

可能的值:

bWrap

Boolean 设置或获取一个下面的值:.

false

缺省值. 允许单元格的单词字符回行.

true

不允许单元格回行,除非字符中含有”<br>”

 

Asp.netDataGrid有个问题,它的Column有个属性ItemStyle.Wrap,设计是当这个列的ItemStyle.Wrap属性为true时,单元格允许回行,为false不允许回行,可是当设置了为false时输出到客户端的是这样的:

<td nowrap=”nowrap”> 

而不是

<td nowrap=”true”>

所以ItemStyle.Wrap属性是没有起作用的,请自己手工在DataGrid1_ItemDataBound事件中将不允许回行的那些单元增加个Attribute nowrap=true

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

{

e.Item.Cells[n].Attributes.Add("nowrap"," true ") ;

}

 

三.     截断英文单词强行回行

上面两个方法可以把表格的宽度都固定了,每个单元是否允许回行都可以设定了,现在可能又会碰到一个问题,当允许回行的遇到比较长的英文单词,可能就超出了这个单元格的宽度,要是不把这个单词从中截断强行换行的话,这个单词的超出单元格宽的的部分将不被显示出来。所以需要在单词超出单元格长度的地方把单词强行截断回行。

可以利用css中的word-break 风格来达到我们的目的:

 

<TABLE id="Table1" style="TABLE-LAYOUT:fixed;word-break:break-all" border="1">

或在脚本中:

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” 的非亚洲语言版本。

### 实现LaTeX表格单元格内文本换行的方法 在LaTeX中,有多种方法可以实现在表格单元格内的文本换行。以下是几种常见的方式: #### 使用 `\makecell` 命令 对于简单的多行文本处理,可以直接使用 `makecell` 宏包中的 `\makecell` 命令,在需要换行的位置加入双反斜杠 (`\\`) 来实现换行效果[^1]。 ```latex \usepackage{makecell} ... \begin{table}[htbp] \centering \begin{tabular}{|c|c|} \hline 1 & \makecell{你想换行的\\单元格} \\ \hline \end{tabular} \end{table} ``` #### 设置固定宽度并允许自动换行 当希望表格外框保持整齐而内部文字能够根据设定宽度自动折行时,可以通过定义带有特定宽度的方式来达到目的。这里推荐使用 `p{}` 或者 `array` 环境下的自定义命令来完成这一操作[^2]。 ```latex % 自定义命令方式 \newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}} ... \begin{table}[htbp] \centering \begin{tabular}{|c|m{3cm}|} \hline 1 & \tabincell{l}{这是很长的一句话会被自动分成几行显示}\\ \hline \end{tabular} \end{table} ``` #### 跨越多个物理行展示内容 如果遇到更复杂的情况——比如某些特殊布局需求下需要跨越实际可见的多行,则应考虑采用 `multirow` 宏包所提供的功能[^3]。 ```latex \usepackage{multirow} ... \begin{table}[htbp] \centering \begin{tabular}{|c|c|} \hline \multirow{2}*{跨两行的内容} & A \\ & B \\ \hline \end{tabular} \end{table} ```
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值