2015-07-10 148 views
0

说我有以下HTML结构内:CSS/LESS选择元件不包含给定的ID

<div id="outer"> 
    <div id="target"> 
    </div> 
</div> 

外DIV可以或可以不具有id为“外”。

我想申请款式只有当它的包含一个div内#target ID为 “外”:

<div id="something-else"> 
    <div id="target"> 
    </div> 
</div> 

与少,我试过如下:

:not(#outer) { 
    #target { 
    // styles 
    } 
} 

这显然不工作(我猜是因为:not运算符不排除它的嵌套元素)。

有什么办法可以通过CSS/LESS实现这个吗?当然,我知道我可以重构HTML /逻辑,所以我不使用这些样式就可以应用这些样式:不是,但是我想知道是否可以实现我所要求的方式。

+0

你知道不能在页面上重复使用ID ...对吗? –

+0

我不是......我只是举例说明了两种不同的情况:一种是它包含在“外部”中,另一种是它不在其中。 – jji

+0

行...只是检查。 –

回答

1

试试这个

:not(#outer) > #target { 
    // Styles 
    background-color: red; 
    } 
} 

这里有一个小fiddle你可以试试。