大佬教程收集整理的这篇文章主要介绍了html – 只有在祖先不包含某个类的情况下才可以应用CSS吗?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我不是CSS专家,但我目前的尝试就是这个.
div:not(.classToBeAvoid) *{ BACkground-color:red; }
我用英文写的是…
“将红色背景应用于任何没有< div class =”classToBeAvoid“>作为祖先的元素”.
但是,在我的测试中,它似乎并没有像这样工作.
CodePen:
https://codepen.io/anon/pen/eGVBVb
码:
<div class="classToBeAvoid"> <div> <p> Shouldn't be a red BACkground on any element around here. </p> </div> </div> <div> <p> Should be a red BACkground </p> </div>
div:not(.classToBeAvoid) *{ BACkground-color:red; }
有几种方法可以解决这个问题(至少有一些权衡取舍).
1.一般兄弟选择器〜
您可以使用general siblings selector,这将适用于您的情况,因为您的.classToBeAvoid位于以下< div>之前.元素.
div~:not(.classToBeAvoid)
div~:not(.classToBeAvoid) { BACkground-color: red; }
<div class="classToBeAvoid"> <div> <p> Shouldn't be a red BACkground on any element around here. </p> </div> </div> <div> <p> Should be a red BACkground </p> </div>
2.没有筑巢
如果情况并非总是如此(我假设),一种方法是删除你的< div>嵌套使它工作.
div:not(.classToBeAvoid) { BACkground-color: red; }
<div class="classToBeAvoid"> <p> Shouldn't be a red BACkground on any element around here. </p> </div> <div> <p> Should be a red BACkground </p> </div>
3.附加课程
如果您不想删除< div>嵌套要么,你可以将类应用到顶级< div> s并将它们用于选择器,即:
.chosen:not(.classToBeAvoid)
.chosen:not(.classToBeAvoid) { BACkground-color: red; }
<div class="chosen classToBeAvoid"> <div> <p> Shouldn't be a red BACkground on any element around here. </p> </div> </div> <div class="chosen"> <p> Should be a red BACkground </p> </div>
4.直接子选择器>
如果你也不想给每个顶级< div>另外一个类,您可以使用direct child selector >
的父级:
body>div:not(.classToBeAvoid)
body>div:not(.classToBeAvoid) { BACkground-color: red; }
<div class="classToBeAvoid"> <div> <p> Shouldn't be a red BACkground on any element around here. </p> </div> </div> <div> <p> Should be a red BACkground </p> </div>
5.继承
此外,您可以使用您的选择器div:not(.classToBeAvoid),并且另外确保,该子< div> s继承.classToBeAvoid的行为:
.classToBeAvoid div { BACkground-color: inherit; }
div:not(.classToBeAvoid) { BACkground-color: red; } .classToBeAvoid div { BACkground-color: inherit; }
<div class="classToBeAvoid"> <div> <p> Shouldn't be a red BACkground on any element around here. </p> </div> </div> <div> <p> Should be a red BACkground </p> </div>
>或5.是我在你的情况下更喜欢的.
以上是大佬教程为你收集整理的html – 只有在祖先不包含某个类的情况下才可以应用CSS吗?全部内容,希望文章能够帮你解决html – 只有在祖先不包含某个类的情况下才可以应用CSS吗?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。