【发布时间】:2020-10-05 01:53:17
【问题描述】:
我正在尝试在 SASS 中为一个 WordPress 网站创建 CSS 代码,我在该网站上为名为“.entry-content”的容器中显示的内容编写了我的样式。
我创建了一些自定义块,并为它们提供了一个名为“.mnk-block”的标准类。
我想要的是,我的块中的元素(例如 <h2> 或 <p>),如果放置在该容器内,则不要使用父“.entry-content”样式。我认为使用 :not() 伪类是合适的方法,但它不起作用。
<div class="entry-content">
<h2>My title</h2>
<div class="mnk-block">
<h2>My block title</h2>
</div>
</div>
在 sass 中我写了这样的代码
.mnk-block {
h2 {
color: red;
}
}
.entry-content {
h2:not(.mnk-block h2) {
color: blue;
}
}
但这最终根本没有选择任何东西。我的“.mnk-block”显示正确,因为它使用了在其他地方声明的样式,但我的“.entry-content”样式没有在任何地方应用。
然后我尝试了这个:
.mnk-block {
h2 {
color: red;
}
}
.entry-content {
:not(.mnk-block) {
h2 {
color: blue;
}
}
但这会选择在.entry-content 中匹配的任何内容,覆盖或与我的.mnk-block CSS 样式发生冲突。
如何声明不应用于我的特定类的样式?这真的让我很困惑 - 很难在这里解释它。任何帮助表示赞赏。
【问题讨论】:
标签: css sass css-selectors pseudo-element