我们采用4个表格列 - ID
,Text
,Date
,Action
。在我的情况下,表格始终保持恒定宽度 - 例如960px。
如何创建如下表:
*-*------------------------------------*----------*----*
|1| Some text... |May 2011 |Edit|
*-*------------------------------------*----------*----*
|2| Another text... |April 2011|Edit|
*-*------------------------------------*----------*----*
我们可以看到,ID
,Date
和Action
将其宽度调整为内容,Text
尽可能长......
如果没有设置特定的列宽,是否可以这样做?当ID
= 123或Date
= 2011年11月时,列应自动更宽......
答案 0 :(得分:17)
在宽td上使用100%
宽度以及表格的固定宽度以及white-space:nowrap
,可以这样做:
<table>
<tr>
<td>1</td>
<td width="100%">Some text... </td>
<td>May 2011</td>
<td>Edit</td>
</tr>
<tr>
<td>2</td>
<td width="100%">Another text... </td>
<td>April 2011</td>
<td>Edit</td>
</tr>
</table>
table
{
...
width:960px;
}
td
{
...
white-space:nowrap;
}
答案 1 :(得分:5)
基本上,就像这样:http://jsfiddle.net/49W5A/ - 你必须将单元格宽度设置为小的(如1px
),以使它们保持尽可能小。
但正如您将看到的那样,日期字段执行换行时存在一个问题。为防止这种情况发生,只需为文字字段添加white-space: nowrap;
:http://jsfiddle.net/ZXu7U/
工作示例:
<style type="text/css">
.table{
width:500px;
border: 1px solid #ccc;
}
.table td{
border: 1px solid #ccc;
}
.id, .date, .action{
width:1px;
}
.date{
white-space: nowrap;
}
</style>
<table class="table">
<tr>
<td class="id">1</td>
<td class="text">Some Text...</td>
<td class="date">May 2011</td>
<td class="action">Edit</td>
</tr>
<tr>
<td class="id">2</td>
<td class="text">Another Text...</td>
<td class="date">April 2011</td>
<td class="action">Edit</td>
</tr>
</table>
答案 2 :(得分:4)
我最好的建议是不要触摸桌子的宽度,桌子会以最适合所有单元格的方式自动布局。
但是,如果您想要完成,我会在需要调整的单元格上使用width: 1px;
(每列中的一个就足够了)。同时在所有单元格上使用white-space: nowrap
。这将确保线条不会破裂。
答案 3 :(得分:2)
试试这个:
.id,。日期,。action是表格单元格(td)。
<强> CSS:强>
.id, .date, .action {
width: 1em;
}
它对我有用。
宽度:1em不会剪切文本,但会将宽度尺寸调到最小。
答案 4 :(得分:1)
我发现设置表格列宽的最佳方法是使用表格头(可以为空),并对每个表格头单元格应用相对宽度。表格主体中所有单元格的宽度将与其列标题的宽度一致。示例:
HTML
<table>
<thead>
<tr>
<th width="5%"></th>
<th width="70%"></th>
<th width="15%"></th>
<th width="10%"></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Some text...</td>
<td>May 2018</td>
<td>Edit</td>
</tr>
<tr>
<td>2</td>
<td>Another text...</td>
<td>April 2018</td>
<td>Edit</td>
</tr>
</tbody>
</table>
CSS
table {
width: 600px;
border-collapse: collapse;
}
td {
border: 1px solid #999999;
}
或者,您也可以按照建议的here使用colgroup
。