[英]Using the :not CSS selector
我想用蓝色为我的所有p
着色,除了无色div内的那个。
我试过p:not(.no-color)
:not(.no-color) p
, div:not(.no-color) p
但我觉得我误解了一些东西
p:not(.no-color) { color: blue; }
<div class="container"> <p>Lorem ipsum</p> <div class="no-color"><p>Lorem ipsum</p></div> <p>Lorem ipsum</p> <div class="random-class"><p>Lorem ipsum</p></div> </div>
编辑:自动检索HTML代码,因此我无法选择应用这些类的元素。 我只能在CSS中进行样式化。
如果你不能修改HTML,你可以使用这样的东西:
.container > p, .container > div:not(.no-color) > p { color: blue; }
<div class="container"> <p>Lorem ipsum</p> <div class="no-color"> <p>Lorem ipsum</p> </div> <p>Lorem ipsum</p> <div class="random-class"> <p>Lorem ipsum</p> </div> </div>
此选择器应该可以工作,而无需修改HTML:
:not(.no-color) > p { color: blue; }
<div class="container"> <p>Lorem ipsum</p> <div class="no-color"><p>Lorem ipsum</p></div> <p>Lorem ipsum</p> <div class="random-class"><p>Lorem ipsum</p></div> </div>
(对不起我之前的,无益的答案......我实际测试了这个!)
编辑:修正了答案
我会将课程放在<p>
,然后p:not(.no-color)
会起作用。
但是,如果不能更改HTML结构,则可以使用.no-color p
选择器将<p>
s作为具有.no-color
类的元素的后代,然后将颜色设置为inherit
。
将颜色设置为inherit
允许您获取封闭父级的颜色而不指定它。
此技术适用于.no-color
父级下面的任意嵌套<p>
元素。
p { color: blue; } .no-color p { color: inherit; }
<p>Lorem ipsum</p> <div class="no-color"> <p>Lorem ipsum</p> </div> <p>Lorem ipsum</p> <div class="no-color"> <div> <p>Lorem ipsum</p> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.