组合:first-child和#id选择器:not()不起作用

时间:2015-08-10 01:17:27

标签: html css bitrix

我遇到了问题: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>

http://jsfiddle.net/d990f0a1/

所以,主要问题是 .crm-offer-info-table tr:not(:first-child,#section_contact_info_contents&gt; tr){} 它不起作用,我需要以某种方式将这两个选择器组合在一起:not(),所有这些都必须在css中完成。

2 个答案:

答案 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。那么您就不必记住tbodytable的孩子,trtbody的孩子。

如果我没记错的话,您希望td的{​​{1}}位于其自己的列中。在textareadisplay: table-column上尝试tr。对不起,我不能更具体,但您发布的信息不包括我怀疑的完整布局。如果没有正确的布局知识,HTML / CSS的建议就像马蹄铁和手榴弹。