[英]Fixed Table Cell Width
许多人仍然使用表格来布局控件、数据等。流行的 jqGrid 就是一个例子。 然而,发生了一些我似乎无法理解的魔法(它的桌子大声喊叫,可能有多少魔法?)
如何设置表格的列宽并像 jqGrid 那样遵守它!? 如果我尝试复制这一点,即使我设置了每个<td style='width: 20px'>
,只要这些单元格之一的内容大于 20px,单元格就会扩展!
任何想法或见解?
您可以尝试使用<col>
标签管理所有行的表格样式,但您需要在<table>
或表格 css 类上设置table-layout:fixed
样式并为单元格设置overflow
样式
http://www.w3schools.com/TAGS/tag_col.asp
<table class="fixed">
<col width="20px" />
<col width="30px" />
<col width="40px" />
<tr>
<td>text</td>
<td>text</td>
<td>text</td>
</tr>
</table>
这是你的 CSS
table.fixed { table-layout:fixed; }
table.fixed td { overflow: hidden; }
现在在 HTML5/CSS3 中我们有更好的解决方案。 在我看来,推荐这种纯 CSS 解决方案:
table.fixed {table-layout:fixed; width:90px;}/*Setting the table width is important!*/ table.fixed td {overflow:hidden;}/*Hide text outside the cell.*/ table.fixed td:nth-of-type(1) {width:20px;}/*Setting the width of column 1.*/ table.fixed td:nth-of-type(2) {width:30px;}/*Setting the width of column 2.*/ table.fixed td:nth-of-type(3) {width:40px;}/*Setting the width of column 3.*/
<table class="fixed"> <tr> <td>Veryverylongtext</td> <td>Actuallythistextismuchlongeeeeeer</td> <td>We should use spaces tooooooooooooo</td> </tr> </table>
即使在haunter's solution 中,您也需要设置桌子的width
。 否则它不起作用。
vsync建议的另外一个新的 CSS3 特性是: word-break:break-all;
. 这也会将其中没有空格的单词分解为多行。 只需像这样修改代码:
table.fixed { table-layout:fixed; width:90px; word-break:break-all;}
table td
{
table-layout:fixed;
width:20px;
overflow:hidden;
word-wrap:break-word;
}
我有一个长表格 td 单元格,这迫使表格到浏览器的边缘并且看起来很难看。 我只是希望该列只有固定大小,并在达到指定宽度时打破单词。 所以这对我来说效果很好:
<td><div style='width: 150px;'>Text to break here</div></td>
您不需要为 table, tr 元素指定任何类型的样式。 您也可以使用溢出:隐藏; 正如其他答案所建议的那样,但它会导致多余的文本消失。
table {
table-layout:fixed; width:200px;
}
table tr {
height: 20px;
}
10x10
对于 FULLSCREEN 宽度表:
表格宽度必须为 100%
如果需要 N 列,那么 TH 必须是 N+1
3列的示例:
table.fixed { table-layout: fixed; width: 100%; } table.fixed td { overflow: hidden; }
<table class="fixed"> <col width=20 /> <col width=20 /> <col width=20 /> <tr> <th>1</th> <th>2</th> <th>3</th> <th>FREE</th> </tr> <tr> <td>text111111111</td> <td>text222222222</td> <td>text3333333</td> </tr> </table>
table
{
table-layout:fixed;
}
td,th
{
width:20px;
word-wrap:break-word;
}
:first-child ... :nth-child(1) 或 ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.