将样式应用于具有 CSS 子元素的父元素

如果 parent包含 child元素,我将尝试将 styles应用于 parent

到目前为止,如果存在的话,我已经将样式应用于 child元素。但我想 styleparent,如果 parentchild,使用只有 CSS

以下是 html

<ul class="main">
<li>aaaa</li>
<li>aaaa</li>
<li>aaaa</li>
<li>aaaa</li>
<li>aaaa
<ul class="sub">
<li>bbbb</li>
<li>bbbb
<ul>
<li>cccc</li>
<li>cccc</li>
<li>cccc</li>
</ul>
</li>
<li>bbbb</li>
<li>bbbb</li>
<li>bbbb</li>
</ul>
</li>
<li>aaaa</li>
<li>aaaa</li>
<li>aaaa</li>
</ul>

css密码

* {
margin:0;
padding:0;
text-decoration:none;
}
.main li {
display:inline-block;
background:yellow;
color:green;
}
.main > li > ul > li {
background:orange
}
.main > li > ul > li > ul >li {
background:pink;
}

工作 小提琴

254277 次浏览

你可以使用 has():

ul li:has(ul.sub) { ... }

CSS3是不可能的。有一个提议的 CSS4选择器 $,可以这样做(选择 li元素) :

ul $li ul.sub { ... }

看看 (只有英文版本)

作为另一种选择,使用 jQuery 时,您可以使用以下一行程序:

$('ul li:has(ul.sub)').addClass('has_sub');

然后您可以继续在 CSS 中设置 li.has_sub的样式。