我试图仅为p
和a
元素应用样式,这两个元素是任何class为"的元素的后代;某类";。每https://developer.mozilla.org/en-US/docs/Web/CSS/Selector_list,下面的代码应该提供预期的行为。但是,样式意外地应用于所有p
元素。有趣的是,如果我重新排序子体列表,即.some-class p,a
,我能够获得正确的行为。有人能解释一下为什么会这样吗?
仅供参考-我已经在Firefox和Chrome中运行了代码,结果相同。
<html>
<head>
<style>
.some-class a,p {
color: red;
}
</style>
</head>
<body>
<div>
<p>should not be red</p>
</div>
<div class="some-class">
<p>should be red</p>
</div>
</body>
</html>
选择类名为some-class
的元素中的所有a
-元素,然后选择所有p
-元素。您必须指定还希望选择类名为some-class
的元素内部的所有p
元素,如下所示:
.some-class a,
.some-class p {
color: red;
}
还有一种更现代的方法:
.some-class :is(a,p) {
color: red;
}