我的HTML结构就像这样
<div>
<div>
<h1>Something</h1>
</div>
<div>
<h1 class='Handle'>Something</h1>
</div>
</div>
如果div > div
没有“Handle”类的孩子,我希望div > div
拥有样式cursor:move;
。我怎样才能在纯CSS中这样做,甚至可能吗?
答案 0 :(得分:3)
CSS中没有父选择器,因此您无法提出要求。你可以做的是通过使用属性选择器将cursor:move
放在每个没有“Handle”类的h1上。
h1:not([class=Handle]) {
cursor:move;
}
另一种选择是调整HTML,并将h1移动到与div相同的级别。
<div>
<h1>Something</h1>
<div>
dragable content
</div>
<h1 class='Handle'>Something</h1>
<div>
non dragable content
</div>
</div>
现在你可以对h1进行相同的检查,然后定位它后面的div。
h1:not([class=Handle]) + div {
cursor:move;
}
答案 1 :(得分:1)
此将起作用,但据我所知,目前没有浏览器支持它。 jQuery确实可以。
div > div:not(:has(h1.Handle)) {
cursor: move;
}
答案 2 :(得分:0)
尝试
div > div h1:not([class=Handle]) {
cursor:move;
}