I have this CSS rule:
* {
font-family: Tahoma;
}
我希望将规则应用于除了这个唯一的类别为
div
及其子元素之外的所有元素:<div class="angular-text-editor">
<p></p>
<p></p>
<p></p>
</div>
我想要一些css规则来确保*规则适用于除此div和它的子元素之外的所有元素。我甚至尝试使用:not选择器,但对于子元素没有帮助。
谢谢
选择具有后代的唯一div
并为它们分配不同的font-family
* {
font-family: sans-serif;
}
.a, .a * {
font-family: monospace;
}
<div class="a">
first text
<p>more text</p>
<div>
further nested text
<p>more text</p>
</div>
</div>
<div>
second text
<p>more text</p>
</div>
或者将font-family
分配给body
标签,并在唯一元素上使用unset
,在其后代中使用inherit
。
.a {
font-family: unset;
}
.a * {
font-family: inherit !important;
}
body *:not(.a) {
font-family: sans-serif;
}
body {
font-family: monospace;
}
<div class="a">
first text
<p>more text</p>
<div>
further nested text
<p>more text</p>
</div>
</div>
<div>
second text
<p>more text</p>
</div>
unset
的替代方案,但最终结果基本相同。 - Craybody
或.a
上设置font-family
,它会覆盖*:not()
选择器。 - Crayunset
的作用。unset
将元素的继承属性(其中包括 font-family
)设置为与其父元素相同 - 这似乎与您尝试做的相反。 - Swimmer Fbody {
font-family: Tahoma !important;
}
所以如果没有自己的字体,所有元素都将继承它...... 特别感谢这个人:
div
及其内容覆盖全局样式,那么代码会更加简洁和清晰。 - fubar