Html CSS无同级选择器
考虑以下html:Html CSS无同级选择器,html,css,css-selectors,Html,Css,Css Selectors,考虑以下html: <div> <div class="iwant" /> <div class="idontwant" /> </div> <div> <div class="iwant" /> </div> 我感兴趣的是一个选择器(用于抓取内容,因此我无法修改html),它可以选择所有iwant中没有类idontwant的同级选择器,以便按类匹配元素(或不匹配) 我能想到的最接
<div>
<div class="iwant" />
<div class="idontwant" />
</div>
<div>
<div class="iwant" />
</div>
我感兴趣的是一个选择器(用于抓取内容,因此我无法修改html),它可以选择所有
iwant
中没有类idontwant
的同级选择器,以便按类匹配元素(或不匹配)
我能想到的最接近的选择器是
.iwant:only-child
但此选择器意味着,除了作为父级
div
的子级的div class=“iwant”
之外,不存在任何其他元素,无论其类型或类别如何。根据HTML的结构,这可能满足您的需要,因此值得一试。如果类名对您来说是一个问题,那么可能没有太多的解决方案,因为没有:CSS中只有一个类伪类,它按类过滤并忽略其余部分。没有负同级CSS选择器。使用同级选择器设置新样式,然后在上重置样式。idontwant
:
div.iwant {
/*Set CSS here*/
display: inline;
}
div.iwant ~ div.idontwant {
/*Reset CSS*/
display: block /* Default of DIV is block*/
}
如果没有特定的兄弟项目,就没有很好的方法来定位项目。但是您可以使用.iwant:last child
来针对没有后续同级的项目
示例:这是多余的,因为每个类都是互斥的。@BoltClock这是什么意思?div.iwant~div.idontwant
选择器比div.iwant
更具体。我没有设置样式,我想为crawler获取这些元素,我更喜欢在一个查询中完成。这可能是一个解决方案,但我更喜欢更一般的选择,因为可能会有额外的div
s。好主意。