有一个包含3列的表格。
现在我想设置第一列100px宽度,第二列200px和最后一列300px
将所有td设置为带有哪个列的列表是一个尴尬。
有更明智的方法吗?
答案 0 :(得分:6)
假设您的表具有标准标记,您可以使用nth-child
或nth-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;
答案 1 :(得分:3)
您可以使用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;
}
&#13;
<table id="myTable">
<tr>
<td>100px</td>
<td>200px</td>
<td>300px</td>
</tr>
</table>
&#13;
如果有超过3列,你可以指定nth-child(x)..
答案 2 :(得分:2)
您可以使用nth-child
执行此操作:
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;
提示:列比CSS上定义的宽度宽,因为有一个默认的cellpadding。要删除填充,您可以使用其他CSS规则(在此示例中为规则
table tr td
)。