我遇到了问题:not()css选择器。我已经检查了stackoverflow,但没有任何工作。问题是当我结合使用:第一个子选择器和id选择器。我正在使用Bitrix CRM,所以我需要覆盖它的一些css,为此我使用“!important”(硬核)。 这是一个代码:
.crm-offer-info-table tr:not(:first-child) {
float:right!important;width:49%}
.crm-offer-info-table tr:nth-child(2n+2):not(#section_contact_info_contents>tr) {
float: left!important;
padding-right: 10px;
width:49%
}
HTML部分
<table id="section_contact_info_contents" class="crm-offer-info-table"><tbody>
<tr id="section_contact_info">
<td colspan="5">
..some code..
</td>
</tr>
<tr id="email_wrap" class="crm-offer-row">
<td class="crm-offer-info-drg-btn"></td>
<td class="crm-offer-info-left">
</td><td class="crm-offer-info-right"></td>
<td class="crm-offer-info-right-btn"></td>
<td class="crm-offer-last-td"></td>
</tr>
<tbody>
</table>
所以,主要问题是 .crm-offer-info-table tr:not(:first-child,#section_contact_info_contents&gt; tr){} 它不起作用,我需要以某种方式将这两个选择器组合在一起:not(),所有这些都必须在css中完成。
答案 0 :(得分:2)
正如:not specs所说,它适用于simple selectors而#section_contact_info_contents>tr
不适用;您可以使用2来分割它:不是这样的选择器:
.crm-offer-info-table:not(#section_contact_info_contents) tr:not(:first-child){...}
答案 1 :(得分:0)
tr:nth-child(2n+2):not(#section_contact_info_contents>tr)
没有意义,因为您的表只有2行。暂且不说jakopo87只回答了一分钟(jakopo87对于简单的选择器是正确的),让我们考虑一下这个规则集说的是什么:
.crm-offer-info-table tr:nth-child(2n+2)
我认为你的意思是:
ANY 偶数行,位于 ANY 表格中
class="crm-offer-info-table"
...
如果这就是你的意思,那么它应该是这样的:
.crm-offer-info-table
的 > tbody >
强> tr:nth-child(2n)
接下来是:
:not(#section_contact_info_contents>tr)
我认为你的意思是:
... 但 排除 UNIQUE 表格中的所有行
id="section_contact_info_contents"
。
如果这实际上是你的意图,那么它应该是这样的:
:not(#section_contact_info_contents
的 > tbody >
强> tr);
当然,如果排除表的 ALL 行,那基本上不包括表本身(至少在此上下文中)。所以我建议(就像jakopo87一样)你使用一个不那么详细的规则集:
:not(#section_ contact_info_contents *)
甚至:not(#section_contact_info_contents)
如果必须使用CSS而不是JS,请尝试使用nth-of-type
。那么您就不必记住tbody
是table
的孩子,tr
是tbody
的孩子。
如果我没记错的话,您希望td
的{{1}}位于其自己的列中。在textarea
或display: table-column
上尝试tr
。对不起,我不能更具体,但您发布的信息不包括我怀疑的完整布局。如果没有正确的布局知识,HTML / CSS的建议就像马蹄铁和手榴弹。