CSS选择器定位到不是类名称后代的所有元素?

时间:2019-06-05 17:59:42

标签: css css-selectors

Codepen示例为here

问题。如何将不是div.b后代的所有输入涂成黄色?

我的尝试将所有三个元素都涂成黄色:

:not(.b) input.myInp {background:yellow}

谢谢!

2 个答案:

答案 0 :(得分:1)

:not(.b) > div > p input.myInp {background:yellow}

您需要使选择器足够具体,使其与父.a元素不匹配。

答案 1 :(得分:0)

您的选择器不起作用,因为您要定位的是没有类.b但具有<input>后代并且输入有两个祖先的 any 元素没有此类的元素,规则也适用于它们。

您应该仅通过在选择器中包含父项来指定要引用的容器本身:

div.a > :not(.b) input.myInp {background:yellow}
相关问题