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

时间:2016-10-19 14:40:00

标签: html css

有一个包含3列的表格。 现在我想设置第一列100px宽度,第二列200px和最后一列300px 将所有td设置为带有哪个列的列表是一个尴尬。
有更明智的方法吗?

3 个答案:

答案 0 :(得分:6)

假设您的表具有标准标记,您可以使用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>
&#13;
&#13;
&#13;

答案 1 :(得分:3)

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

&#13;
&#13;
#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;
}
&#13;
<table id="myTable">
<tr>
  <td>100px</td>
  <td>200px</td>
  <td>300px</td>
</tr>
</table>
&#13;
&#13;
&#13;

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

答案 2 :(得分:2)

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

&#13;
&#13;
table tr td {
  padding:0;  
}
table tr td:nth-child(1) {
  width:100px;
}
table tr td:nth-child(2) {
  width:200px;
}
table tr td:nth-child(3) {
  width:300px;
}
&#13;
<table>
  <tr>
    <td>100px</td>
    <td>200px</td>
    <td>300px</td>
  </tr>
</table>
&#13;
&#13;
&#13;

  

提示:列比CSS上定义的宽度宽,因为有一个默认的cellpadding。要删除填充,您可以使用其他CSS规则(在此示例中为规则table tr td)。