【发布时间】:2019-11-12 21:11:49
【问题描述】:
这似乎是一个可以由 Google 回答的非常简单的问题,但我一直在努力解决这个问题。假设您有这样的 HTML 代码:
<p> text 1 </p>
<div class = "divone">
<p> text 2 </p>
<h1> text 3 </h1>
</div>
如果我有这样的 CSS 设置:
.divone h1, p{
color: yellow;
}
似乎改变了div元素之外的p元素。如何选择 div 内的元素,使其仅更改 div“divone”内的 p?
【问题讨论】:
-
下面的答案都没有说明这一点,但您也可以使用通用选择器来选择元素的所有子元素 -
.divone * {}或.divone > * {}如果您只想要直接子元素。使用它时要小心,因为它可能是一个昂贵的选择器 (although not too much in modern browsers) - 这就是为什么我没有把它作为答案。 More information about the universal selector -
@Pete 但它与
.divone h1, .divone p不同,你会遇到很多问题。根据我的经验,最好不要使用它。 -
@Justinas 你能扩展“很多问题”吗?我从来没有遇到过使用它的问题
-
@Pete
.divone里面有modal,那么你需要覆盖背景颜色不同,但是碰巧#container .divone的优先级高于.modal,所以你开始使用!important...等等.. . -
@Justinas 我从来不需要将
important与通用选择器一起使用——那一定是你不了解如何正确使用css——这完全是关于特异性,并且将以完全相同的方式工作作为 divone p 和 divone h1。还有其他问题吗?