如何使表格细胞均匀分布?

Dav*_*Dev 33 html css html-table

我正在尝试创建一个包含许多静态html表的页面.

我需要做些什么才能让它们显示与表中每个列相同大小的每个列?

HTML如下:

<span class="Emphasis">Interest rates</span><br />
<table cellpadding="0px" cellspacing="0px" class="PerformanceTable">
    <tr><th class="TableHeader"></th><th class="TableHeader">Current rate as at 31 March 2010</th><th class="TableHeader">31 December 2009</th><th class="TableHeader">31 March 2009</th></tr>
    <tr class="TableRow"><td>Index1</td><td class="PerformanceCell">1.00%</td><td>1.00%</td><td>1.50%</td></tr>
    <tr class="TableRow"><td>index2</td><td class="PerformanceCell">0.50%</td><td>0.50%</td><td>0.50%</td></tr>
    <tr class="TableRow"><td>index3</td><td class="PerformanceCell">0.25%</td><td>0.25%</td><td>0.25%</td></tr>
</table>
<span>Source: Bt</span><br /><br />

<span class="Emphasis">Stock markets</span><br />
<table cellpadding="0px" cellspacing="0px" class="PerformanceTable">
    <tr><th class="TableHeader"></th><th class="TableHeader">As at 31 March 2010</th><th class="TableHeader">1 month change</th><th class="TableHeader">QTD change</th><th class="TableHeader">12 months change</th></tr>
    <tr class="TableRow"><td>index1</td><td class="PerformanceCell">1169.43</td><td class="PerformanceCell">5.88%</td><td class="PerformanceCell">4.87%</td><td class="PerformanceCell">46.57%</td></tr>
    <tr class="TableRow"><td>index2</td><td class="PerformanceCell">1958.34</td><td class="PerformanceCell">7.68%</td><td class="PerformanceCell">5.27%</td><td class="PerformanceCell">58.31%</td></tr>
    <tr class="TableRow"><td>index3</td><td class="PerformanceCell">5679.64</td><td class="PerformanceCell">6.07%</td><td class="PerformanceCell">4.93%</td><td class="PerformanceCell">44.66%</td></tr>
    <tr class="TableRow"><td>index4</td><td class="PerformanceCell">2943.92</td><td class="PerformanceCell">8.30%</td><td class="PerformanceCell">-0.98%</td><td class="PerformanceCell">44.52%</td></tr>
    <tr class="TableRow"><td>index5</td><td class="PerformanceCell">978.81</td><td class="PerformanceCell">9.47%</td><td class="PerformanceCell">7.85%</td><td class="PerformanceCell">26.52%</td></tr>
    <tr class="TableRow"><td>index6</td><td class="PerformanceCell">3177.77</td><td class="PerformanceCell">10.58%</td><td class="PerformanceCell">6.82%</td><td class="PerformanceCell">44.84%</td></tr>
</table>
<span>Source: B</span><br /><br />
Run Code Online (Sandbox Code Playgroud)

如果有的话,我也建议如何整理它?:-)

编辑:我应该补充说,我们使用的第三方PDF转换应用程序需要cellpadding&cellspacing属性

Oll*_*son 47

你可以使用CSS.一种方法是设置table-layoutfixed,停止表格,并根据其内容调整孩子的大小.然后,您可以在相关td元素上设置固定宽度.这应该做的伎俩:

table.PerformanceTable {
    table-layout: fixed;
    width: 500px;
}
    table.PerformanceTable td.PerformanceCell {
        width: 75px;
    }
Run Code Online (Sandbox Code Playgroud)

整理的建议?你并不需要cellpaddingcellspacing属性,或TableRowTableHeader类.您可以在CSS中覆盖这些内容:

table {
    /* cellspacing */
    border-collapse: collapse;
    border-spacing: 0;
}
th {
    /* This covers the th elements */
}
tr {
    /* This covers the tr elements */
}
th, td {
    /* cellpadding */
    padding: 0;
}
Run Code Online (Sandbox Code Playgroud)

您应该使用标题(例如<h2>)而不是<span class="Emphasis">和/ <p>或表<caption>而不是源<span>.您也不需要这些<br>元素,因为您将使用正确的块级元素.

  • 值得注意的是,如果你没有*在任何一个`<td>'上设置`width`,它们的宽度会被均匀地分开.即,3列表=每个33.3%,5列=每个20%等等... (3认同)
  • 但要小心,因为设置`white-space:nowrap`会否定`table-layout:fixed`; 细胞将再次膨胀以适应内容物.此外,如果您放入宽度大于单元格宽度的图像,则单元格将再次展开.此外,你将无法在单元格上设置高度(但你真的无论如何都不能). (2认同)

Jam*_*tel 14

您可以随时将每个td的宽度设置为100%/ N列.

<td width="x%"></td>
Run Code Online (Sandbox Code Playgroud)