J'essaie d'appliquer styles
à parent
s'il contient child
éléments.
Jusqu'à présent, j'ai appliqué des styles aux éléments child
s'ils sont présents. Mais je veux style
le parent
si le parent
a child
, en utilisant UNIQUEMENT CSS
.
ce qui suit est le 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>
le code 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;
}
travail VIOLON
Ce n'est pas possible avec CSS3. Il existe un sélecteur CSS4 proposé, $
, pour ce faire, qui pourrait ressembler à ceci (Sélection de l'élément li
):
ul $li ul.sub { ... }
Voir le liste des sélecteurs CSS4 ici .
Alternativement, avec jQuery, un one-liner que vous pourriez utiliser serait le suivant:
$('ul li:has(ul.sub)').addClass('has_sub');
Vous pouvez ensuite lancer le style li.has_sub
dans votre code CSS.