如何将 CSS 应用于最后一个 tr 的第一个 td

Posted

技术标签:

【中文标题】如何将 CSS 应用于最后一个 tr 的第一个 td【英文标题】:How to apply CSS to first td of last tr 【发布时间】:2014-08-19 12:32:19 【问题描述】:

我需要在动态添加 tbody 内容的表格中更改最后一个 tr 的第一个 td 的宽度。

我的代码:

<table id="items">
<tr>
<th>SL.No.</th>
<th>Description</th>
<th>Qty</th>
<th>Price</th>
<th>Total</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table> 

我需要将列 slno 设置为 50px,我的意思是所有三行的第一个 td 的宽度,我还需要将最后一行的第一个 td 的宽度设置为 500 px。我该怎么做?

我是这样做的:

#items tbody tr:last-child td:first-child 
width:500px;

但它不起作用。

请帮忙。

【问题讨论】:

设置任何td的宽度也会将其他行的宽度设置为相同的td 那里“不工作”是什么意思?这段代码没问题,你在 CSS 中工作,最后一行的第一个 TD。它是表格,因此您可以设置所有第一个 TD 的宽度。 -1 表示不工作 我的意思是说不工作是,我只需要在最后一行设置第一个 td 的宽度。但是使用我当前的代码,它将宽度设置为所有行中的所有第一个 td。那是说我的代码没有按我的需要工作。 html 表格中,列宽由多步算法确定,如下所述:w3.org/TR/CSS21/tables.html#width-layout 列宽由“最宽”的表格单元格确定,该宽度会影响所有表格列中的单元格,无论最宽的表格单元格位于哪一行。您所要求的无法完成,因为表格不是按这种方式设计的。 【参考方案1】:

试试这个:

css

#items tr:last-child td:first-child
    width:500px;


#items tr td:first-child
    width:50px;

fiddle

【讨论】:

【参考方案2】:

这个应该可以解决你的问题。

tr:last-child>td:first-child 
width:500px;

【讨论】:

这应该是动态改变last tr的第一个td。【参考方案3】:

如果您希望单元格的宽度比其他单元格宽,请使用colspan

这里有一个例子:http://www.w3schools.com/tags/att_td_colspan.asp

HTML

<table>
  <tr>
    <th>Month</th>
    <th>Savings</th>
  </tr>
  <tr>
    <td>January</td>
    <td>$100</td>
  </tr>
  <tr>
    <td>February</td>
    <td>$100</td>
  </tr>
  <tr>
    <td colspan="2">Sum: $180</td>
  </tr>
</table>

【讨论】:

以上是关于如何将 CSS 应用于最后一个 tr 的第一个 td的主要内容,如果未能解决你的问题,请参考以下文章

如何使用jQuery将Class添加到表内每个tr中的第一个td

CSS子组合器(>)不起作用[重复]

如何在 CSS 中制作具有相同列宽的表格?

如何合并三个数组?

使用 CSS 从表格的第二行替换行颜色

滚动文本中的第一个文本如何落后于最后一个文本