代码之家  ›  专栏  ›  技术社区  ›  Pritam Bohra

使用Angular动态生成具有固定宽度列的表

  •  0
  • Pritam Bohra  · 技术社区  · 6 年前

    我试图创建一个固定列宽(每个20%)的数据表。我在我的表中使用div,这样就可以使用angular动态地重复该行。div的引入把我的桌子设计搞砸了。我需要所有的行都要100%地获取,即使其中一列没有值。我还需要做些什么才能得到想要的结果?

    <table class="sturdy">
      <thead>
        <div class="test">
          <tr>
              <th>ID<th>
              <th>First Name</th>
              <th>Middle Name</th>
              <th>Last Name</th>
              <th>Date of Birth</th>
            </tr>
        </div>
      </thead>
    
      <tbody>
        <div class="test" *ngFor="let attribute of attributes">
          <tr>
            <td>{{ attribute[0] }}</td>
            <td>{{ attribute[1] }}</td>
            <td>{{ attribute[2] }}</td>
            <td>{{ attribute[3] }}</td>
            <td>{{ attribute[4] }}</td>
          </tr>
        </div>
      </tbody>
    </table>
    

    以下是我的css:

    td, th {
        border: 1px solid black;
    }
    
    table {
        margin: 15px 0;
        border: 1px solid black;
        table-layout: fixed;
        width: 100%; /* must have this set */
    }
    
    body {
        margin: 0 auto;
        padding: 10px;
    }
    
    .sturdy th:nth-child(1),
    .sturdy th:nth-child(2),
    .sturdy th:nth-child(3),
    .sturdy th:nth-child(4),
    .sturdy th:nth-child(5) {
        width: 20%;
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   95faf8e76605e973    6 年前

    由于其中一个表头(结束标记)的语法无效,该表正变得一团糟。我还补充道 overflow: auto; td 元素,它们可能包含无法放入单元格的元素

    td, th {
        border: 1px solid black;
        overflow: auto;
    }
    
    table {
        margin: 15px 0;
        border: 1px solid black;
        table-layout: fixed;
        width: 100%; /* must have this set */
    }
    
    body {
        margin: 0 auto;
        padding: 10px;
    }
    
    .sturdy th:nth-child(1),
    .sturdy th:nth-child(2),
    .sturdy th:nth-child(3),
    .sturdy th:nth-child(4),
    .sturdy th:nth-child(5) {
        width: 20%;
    }
    <table class="sturdy">
      <thead>
        <div class="test">
          <tr>
              <th>ID</th>
              <th>First Name</th>
              <th>Middle Name</th>
              <th>Last Name</th>
              <th>Date of Birth</th>
            </tr>
        </div>
      </thead>
    
      <tbody>
        <div class="test" *ngFor="let attribute of attributes">
          <tr>
            <td>fooooooooooooo</td>
            <td>foo</td>
            <td></td>
            <td>foo</td>
            <td></td>
          </tr>
        </div>
      </tbody>
    </table>