在一行中对我的表的头部和主体应用css

在一行中对我的表的头部和主体应用css,css,css-selectors,Css,Css Selectors,通过以下css,我定义了表头的第一列 table.search-transport tr th:nth-child(1) { width: 30px; text-align:right; } 我想应用这个css不仅在头部,而且在身体的表 我知道我们可以分两行进行: table.search-transport tr th:nth-child(1), table.search-transport tr td:nth-child(1) { width: 30px

通过以下css,我定义了表头的第一列

table.search-transport tr th:nth-child(1) { width: 30px; text-align:right; }
我想应用这个css不仅在头部,而且在身体的表

我知道我们可以分两行进行:

table.search-transport tr th:nth-child(1),
table.search-transport tr td:nth-child(1)
                  { width: 30px; text-align:right; }
但我想知道我们是否可以在1号线上继续?比如:

table.search-transport tr th:nth-child(1) + td:nth-child(1) { width: 30px; text-align:right; }

谢谢。

只要是第一列中的任何单元格就行了?您应该能够完全省略
th
/
td
部分,并使用子选择器,因为
tr
只能将
th
td
作为子元素(并且您希望确保只选择其子元素,而不选择任何内部元素):

(如果要支持较旧的浏览器,请将
:第n个子项(1)
替换为
:第一个子项


但是,一般来说,您不能同时选择
th:n子项(1)
td:n子项(1)
,同时避免重复选择器的其余部分。网站上的其他地方已经详细介绍了这一点,但请参阅以获取更多信息。

您当前使用的CSS选择器在性能方面很差

下面这句话回答了你的问题

.search-transport tr > :nth-child(1) { width: 30px; text-align: right; }

检查小提琴以查看选择器的动作

我猜您正在寻找
:any
伪类。看


注意:您需要在供应商前加上前缀。未经测试。

您建议的解决方案的问题是,我在第一个单元格中有一个标签,并且该标签也受到影响。真的不明白,在您发布问题后,我发布了相同的答案。这个家伙在做了无数次编辑后发布了与我相同的答案,你接受了。你不仅需要在这个问题上加前缀,而且还需要根据使用前缀的浏览器的数量(例如,请参见),重复整个规则的次数,这使得它比问题中已经出现的情况更糟。换句话说,它是适得其反的,在当前的形式下是无用的。而且,未固定的版本被指定为。
.search-transport tr > :nth-child(1) { width: 30px; text-align: right; }
table.search-transport tr :any(th,td):nth-child(1) { width: 30px; text-align:right; }