如何使用 SASS/CSS 使 HTML Table 占满宽度

How to make HTML Table Take Full Width Using SASS/CSS

我正在尝试使用 SASS/CSS 来设置 table 的样式。我已将 tablewidth 设置为 100%。但是,当我将 th 元素的字体大小设置为 0.8em 时,我的 table 无法占据它允许的所有宽度(请注意,列没有达到边界线在右边)。鉴于我无法控制 HTML?

,我该如何使用 CSS 解决此问题

SASS/CSS

table {
      color: black;
      background-color: white;
      border-color: black;
      border-style: solid;
      border-width: 0 1px 1px 1px;
      border-radius: 5px;
      border-collapse: collapse;
      border-spacing: 0;
      display: block;
      overflow: auto;
      width: 100%;
    
      thead {
        th {
          color: white;
          background-color: black;
          font-weight: bold;
          font-size: 0.8em;
          padding: 5px 10px;
          vertical-align: bottom;
        }
    
        th:first-child {
          border-top-left-radius: 5px;
        }
    
        th:last-child {
          border-top-right-radius: 5px;
        }
      }
    
      tbody {
        td {
          border-top: 1px solid gray;
          padding: 5px 10px;
          vertical-align: top;
        }
    
        tr:nth-child(2n) {
          background-color: lightgray;
        }
      }
    }
    <table>
      <thead>
        <tr>
          <th>Method</th>
          <th>Runtime</th>
          <th align="right">Mean</th>
          <th align="right">Ratio</th>
          <th align="right">Gen 0/1k Op</th>
          <th align="right">Allocated Memory/Op</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Baseline</td>
          <td>Clr</td>
          <td align="right">1.833 us</td>
          <td align="right">1.00</td>
          <td align="right">2.0542</td>
          <td align="right">6.31 KB</td>
        </tr>
      </tbody>
    </table>

从 table

中删除 display:block

#container,tr{
width:100%;
}

html,body{
width:100%;
}

#container{
border-radius:15px;
background-color:black;
}

table {
      color: black;
      background-color: white;
      border-color: black;
      border-style: solid;
      border-width: 0 1px 1px 1px;
      border-radius: 5px;
      border-collapse: collapse;
      border-spacing: 0;
     
      overflow: auto;
      width: 98%;
      margin:0 auto;
    }
      
        th {
          color: white;
          background-color: black;
          font-weight: bold;
          font-size: 0.8em;
          padding: 5px 10px;
          vertical-align: bottom;
        }
    
        th:first-child {
          border-top-left-radius: 5px;
        }
    
        th:last-child {
          border-top-right-radius: 5px;
        }
     
    
     
        td {
          border-top: 1px solid gray;
          padding: 5px 10px;
          vertical-align: top;
        }
    
        tr:nth-child(2n) {
          background-color: lightgray;
        }
<html>
<body>
<div id='container'>
<table>
      <thead>
        <tr>
          <th>Method</th>
          <th>Runtime</th>
          <th align="right">Mean</th>
          <th align="right">Ratio</th>
          <th align="right">Gen 0/1k Op</th>
          <th align="right">Allocated Memory/Op</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Baseline</td>
          <td>Clr</td>
          <td align="right">1.833 us</td>
          <td align="right">1.00</td>
          <td align="right">2.0542</td>
          <td align="right">6.31 KB</td>
        </tr>
      </tbody>
    </table>
   </div>
   </body>
   </html>

这就是我想你想要的,我刚刚删除了 border-collapsedisplay:block(这使 table 默认为 CSS),这里是 codepen with SCSS 这里也有一个工作片段:

table {
  color: black;
  background-color: white;
  border-color: black;
  border-style: solid;
  border-width: 0 1px 1px 1px;
  border-radius: 5px;
  border-collapse: separte;
  border-spacing: 0;
  display: table;
  overflow: auto;
  width: 100%;
}
table thead th {
  color: white;
  background-color: black;
  font-weight: bold;
  font-size: 0.8em;
  padding: 5px 10px;
  vertical-align: bottom;
}
table thead th:first-child {
  border-top-left-radius: 5px;
}
table thead th:last-child {
  border-top-right-radius: 5px;
}
table tbody td {
  border-top: 1px solid gray;
  padding: 5px 10px;
  vertical-align: top;
}
table tbody tr:nth-child(2n) {
  background-color: lightgray;
}
<table>
  <thead>
    <tr>
      <th>Method</th>
      <th>Runtime</th>
      <th align="right">Mean</th>
      <th align="right">Ratio</th>
      <th align="right">Gen 0/1k Op</th>
      <th align="right">Allocated Memory/Op</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Baseline</td>
      <td>Clr</td>
      <td align="right">1.833 us</td>
      <td align="right">1.00</td>
      <td align="right">2.0542</td>
      <td align="right">6.31 KB</td>
    </tr>
  </tbody>
</table>