如何在CSS中将表格中的不同列设置为不同的宽度?

新手上路,请多包涵

有一个包含 3 列的表。现在我想设置第一列 100px 宽度,第二列 200px,最后一列 300px。

为所有 td 设置一个 id 来指示它是哪些列是很尴尬的。

有没有更明智的做法?

原文由 showkey 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 621
2 个回答

假设您的表格具有标准标记,您可以使用 nth-childnth-of-type 来定位每行中的特定单元格。如果您的表有更多列,您可以将任何数字替换为 nth-child

 /* nth-child(1) = the first td in each tr */
td:nth-child(1) {
  width: 100px;
  background: #ddd;
  }

/* the second */
td:nth-child(2) {
  width: 200px;
  background: #ccc;
}

/* the third */
td:nth-child(3) {
  width: 300px;
  background: #bbb;
 }
 <table>
  <tbody>
    <tr>
      <td>1.1</td>
      <td>1.2</td>
      <td>1.3</td>
      </tr>
    <tr>
      <td>2.1</td>
      <td>2.2</td>
      <td>2.3</td>
     </tr>
    </tbody>
  </table>

原文由 jack 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 nth-child 在 CSS 中执行此操作:

 #myTable tr td {
  border: 1px solid #000;
}

#myTable tr td:first-child {
  width: 100px;
}
#myTable tr td:nth-child(2) {
  width: 200px;
}
#myTable tr td:last-child {
  width: 300px;
}
 <table id="myTable">
<tr>
  <td>100px</td>
  <td>200px</td>
  <td>300px</td>
</tr>
</table>

如果有超过 3 列,你可以只指定 nth-child(x)..

原文由 Ant 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题