【问题标题】:Display total below HTML/CSS table在 HTML/CSS 表格下方显示总计
【发布时间】:2012-09-24 15:50:33
【问题描述】:

我创建了一些显示交易的表格,最后一列是金额字段。我需要在此列下方显示总计/小计。问题是我的表格列设置为 % 宽度。

如何确保显示总金额的字段位于金额列下方。

我想我需要某种 CSS 代码来保持总字段(div/span)与表格宽度相关联,但我不知道该怎么做。

谢谢。

例子:

Col1 Col2 Col3 Amount
A      B    C    100
D      E    F    100
          Total: 200

编辑:我也应该说这个表是动态的。它使用 Visualforce(原生 force.com 语言)创建。然后将 UI 呈现为 HTML,并且我确实有 CSS 来格式化生成的 HTML 表。由于我事先不知道我可以拥有多少行,所以我不能简单地为总数添加一行,并想看看是否有更好的解决方案。

【问题讨论】:

  • 您熟悉colspanrowspan 属性吗?
  • 一个表中所有列的总计或小计仍然是表格数据的一部分,因此它仍然属于表格内。

标签: javascript html css table-footer


【解决方案1】:

代码

<!-- Style -->
<style>
   #total {
      text-align:right;
   }

   #table {
      border:1px solid red;
      border-collapse:separate;
   }

   #table th, #table td {
      border:1px solid #000;
   }
</style>
<!-- Table -->
<table id="table">
  <thead>
   <tr>
     <th>Col1</th>
     <th>Col2</th>
     <th>Col3</th>
     <th>Amount</th>
   </tr>
  </thead>
  <tbody>
   <tr>
     <td>A</td>
     <td>B</td>
     <td>C</td>
     <td>100</td>
   </tr>
   <tr>
     <td>D</td>
     <td>E</td>
     <td>F</td>
     <td>100</td>
   </tr>
  </tbody>
  <tfoot>
    <tr>
      <th id="total" colspan="3">Total :</th>
      <td>200</td>
    </tr>
   </tfoot>
 </table>

“总计”标签位于跨越 2 列的 th(查看肉桂评论)。应用于此单元格的样式会移动右侧的所有文本。总数 (200) 与其他结果一致。

【讨论】:

  • 您对标记的想法是正确的,但 tfoot 应包含 2 个单元格:th(总计)和 td(200)。
【解决方案2】:

你可以试试这个

CSS

tbody tr{text-align:center; /*If you want to center align of row text*/}
.right{text-align:right;}​

HTML

<table>
    <thead>
        <tr><th>Col1</th><th>Col2</th><th>Col3</th><th>Amount</th></tr>
    </thead>
    <tbody>
        <tr>
            <td>A</td><td>B</td><td>C</td><td class="right">100</td>
        </tr>
        <tr>    
            <td>D</td><td>E</td><td>F</td><td class="right">100</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td class="right" colspan="3">Total:</td><td class="right">200</td>
        </tr>
    </tfoot>
</table>

DEMO.

【讨论】:

    【解决方案3】:

    使用表格页脚,然后您可以使用整个宽度。

    【讨论】:

    【解决方案4】:

    使用colspan 作为您的“总计”标签:

    <table border="1>"
        <tr>
            <th width="25%">Col1</th>
            <th width="25%">Col2</th>
            <th width="25%">Col3</th>
            <th width="25%">Amount</th>
        </tr>
        <tr>
            <td>A</td>
            <td>B</td>
            <td>C</td>
            <td>100</td>
        </tr>
        <tr>
            <td colspan="3" style="text-align:right;">total:</td>
            <td>100</td>
        </tr>
    </table>
    

    【讨论】:

    • 样式(宽度,文本对齐)应始终超出表格结构。
    • @Stephan 当然;这只是对问题的快速回答。
    【解决方案5】:

    colspan 属性添加到您最后一个td 并将您的文本向右对齐。

    HTML

    <tr>
        <td class="total-column" colspan="4">
        Total:200
        </td>
    </tr>
    

    CSS

    .total-column {
        text-align:right;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 2011-02-20
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多