选择器结合Asterisk和父元素?

时间:2013-05-07 12:35:55

标签: css css-selectors

我知道Asterisk匹配元素中的所有项目。是否有任何选择器,包括父元素?

示例HTML

<p>
    foobar
    <span>
        foobar
    </span>
</p>

示例CSS

p * {
    background-color:aqua;
}

现在只有p内的span元素才能获得背景颜色。是否有一个选择器匹配p标签和p标签内的所有标签?或者我仍然必须使用

p, p * {
    background-color:aqua;
}

注意 background-color只是虚拟内容。

2 个答案:

答案 0 :(得分:4)

你必须使用p, p *,虽然取决于你正在应用的属性,如果它是默认继承的,它应该足以简单地将它应用于p并让它的后代继承它代替。如果将其明确地应用于所有后代,则可能会不必要地破坏继承链。

考虑到背景的性质,我认为将背景颜色应用于p的所有后代以及p本身并不是很重要。

答案 1 :(得分:2)

是否有任何选择器,包括父元素?

否。有关详细说明,请参阅Is there a CSS parent selector?

有人建议使用css级别4,并拒绝:Complex CSS selector for parent of active child