【问题标题】:Apply style to cells of first row将样式应用于第一行的单元格
【发布时间】:2012-05-14 01:55:35
【问题描述】:

应该很简单,但我想不通。

我有一张这样的桌子:

<table class="category_table">
 <tr><td> blabla 1</td><td> blabla 2 </td></tr>
 <tr><td> blabla 3 </td><td> blabla 4 </td></tr>
</table>

我想让td 第一个tr 行的标签有vertical-align。但不是第二行。

.category_table td{
    vertical-align:top;
}

【问题讨论】:

标签: html css css-selectors html-table


【解决方案1】:

以下适用于thead 下表的第一个tr

table thead tr:first-child {
   background: #f2f2f2;
}

这适用于theadtbody 中的第一个tr

table thead tbody tr:first-child {
   background: #f2f2f2;
}

【讨论】:

    【解决方案2】:

    这应该可以完成工作:

    .category_table tr:first-child td {
        vertical-align: top;
    }
    

    【讨论】:

      【解决方案3】:

      tr:first-child取第一个tr

      .category_table tr:first-child td {
          vertical-align: top;
      }
      

      如果您有嵌套表,并且您不想将样式应用于内部行,请添加一些子选择器,以便只有第一个顶级 tr 中的顶级 tds 获取样式:

      .category_table > tbody > tr:first-child > td {
          vertical-align: top;
      }
      

      【讨论】:

      • 其实我之前试过这个,不行。不知道为什么。
      • 我也不知道。我 100% 相信这适用于所有主流浏览器。
      • 当我比较 FireBug 中第一行和第二行的td 标签时,我可以看到第一行继承了样式,但第二行没有。我不知道为什么第二行是垂直对齐的!?
      • 那么它可能是默认样式。我不熟悉默认表格样式。
      • 我对 FireBug 进行了更深入的研究。我想我找到了问题所在。实际上在我第二行的td 标签内,我有桌子。第二行单元格内的表格似乎继承了样式。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多