我正在清理别人的代码,基本上看起来像这样:

a {color:red;}
#contentdiv :not(h4) > a {color:green!important}

因此,所有链接均为绿色,但h4以下的链接为红色。

假设“ li”下的所有链接也必须为红色。 更好的是,假设“ li”下的链接需要继承用户在此特定CMS中输入的内容,因此颜色可以更改,而无需在样式表中进行声明。

换一种说法...

#contentdiv ul li a {color:red!important}

...将不起作用,因为当“ a”标签上的全局样式更改时,“ li”下的“ a”标签将保持红色。

但是试图否定“!重要”,如...

a {color:red;}
#contentdiv :not(h4) > a,
#contentdiv :not(li) > a {color:green!important}

...似乎只是抵消了两种否定。 我知道“:not”伪代码应该像“(!A和!B)”一样工作,但是添加重要内容似乎使它成为目标A或B补码“(A / *或B / *)”的意思是,所有内容都会变成绿色,甚至“ h4”和“ li”下的“ a”标签。

这是一个JSFiddle: https ://jsfiddle.net/qebz4bbx/2/

只是想对此进行一些澄清。 谢谢!

===============>>#1 票数:4 已采纳

你误解了逗号,

逗号是逻辑或,而不是逻辑与。

因此,

#contentdiv :not(h4) > a,
#contentdiv :not(li) > a

匹配每个元素

  • a元素,其父代不是h4元素,并且该父代是id="contentdiv"的元素的后代。
  • 要么
  • a元素,其父级不是li元素,并且该父级是id="contentdiv"的元素的后代。

因此,您的选择器等效于#contentdiv * > a

相反,您应该使用

#contentdiv :not(h4):not(li) > a

匹配每a元素的父是既不是h4元件,也不是li元件,并且该父是与元素的后代id="contentdiv"

  ask by c. allen batt translate from so

未解决问题?本站智能推荐:

2回复

伪类不能与类一起使用

我正在尝试做一个简单的布局,但是当我的伪类与类一起使用时,我遇到了问题。 尽管这些类的CSS可以工作,但是任何实例 被写不起作用。 另外,尽管我没有在下面的代码中使用它,但仅使用伪类 正常工作。 我该如何解决这个问题? 谢谢。 CSS: HTML:
2回复

CSS伪类:required不能与伪元素:: before一起使用

我的意图是在必填字段的标签上加一个*。 我正在使用Chrome 47,Firefox 43和Opera 34进行测试。这些都无法理解CSS选择器 根据http://caniuse.com/#feat=form-validation的介绍,他们都应该能够理解它,如果您使用 相
1回复

在Sass中将伪类与变量一起使用

我一直无法全神贯注于如何执行这个想法,因为我已经在Sass中使用带有变量的伪类。 我的情况 我正在创建一个包含多个input[type=text]字段和input[type=email]字段的表单,对于这些字段,我想创建normal , hover和focus状态。 因此,编译
4回复

有空间和无空间的伪类的不同行为

此问题与CSS伪类有关。 我仅以:last-child为例,我想它也发生在所有其他伪类中。 鉴于我有以下简单的HTML: <body> <p>Paragraph1</p> <p>Paragraph2</p>
3回复

:最后类型的伪类不按预期行事

我正在应用:last-of-type到一个应该是这样的元素。 在http://www.elemovements.com上查看最终的div.info (这是每篇文章的底部信息)。 为什么不起作用?
1回复

在以下代码中,伪类nth-type和nth-child的行为不符合我的预期。

这个问题已经在这里有了答案: :nth-​​child(n)前面的空格有什么作用? 3个答案 我刚刚开始学习CSS中的伪类,并且对为什么nth-type和nth-child在我的代码中表现异常感到困惑。 在这段代码中,我假设选择器: 只会选择2个元素
2回复

使用jQuery定位伪类

我无法访问样式表中的以下两种样式: 使用jQuery,如何将a:link和a:hover的字体大小更改为100%。
5回复

使用jQuery的CSS伪类

我刚刚学会了一点jQuery,并试图将它用于简单的变色效果。 假设我有两个<div > s,#foo和#bar。 #foo有很多URL,并定义了以下CSS: 现在我想在用户单击#bar时更改#foo中链接的颜色(a:link),但保持a:hover颜色不变,所以我写这样的
1回复

前后使用CSS伪类

因此,我尝试在CSS伪类之前和之后进行实验。 我尝试使用这些伪元素创建标头元素,以减少使用div保留左右图像的可能性。 这是HTML代码 所以我有3张图像来创建传统的标头元素,其左侧和右侧的宽度为20px,高度为100px,中间的宽度为1px,高度为100px,它们将重复水平。 这
2回复

为什么CSS:不是伪类不能按预期工作?

请考虑以下HTML: 正如预期的那样,将以下CSS颜色仅添加为红色的“World”: 但是,添加以下CSS会将“Hello”和“World”颜色改为红色 : 为什么?