styles
要素がある場合、parent
をchild
に適用しようとしています。
これまで、もしあればchild
要素にスタイルを適用しました。ただし、style
にparent
がある場合は、parent
のみを使用して、child
を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;
}
作業中 FIDDLE
CSS3では不可能です。ちょうどそれを行うために提案されたCSS4セレクター$
があり、これは次のようになります(li
要素の選択)。
ul $li ul.sub { ... }
CSS4セレクターのリストはこちら を参照してください。
別の方法として、jQueryを使用すると、利用できるワンライナーは次のようになります。
$('ul li:has(ul.sub)').addClass('has_sub');
次に、CSSでli.has_sub
のスタイルを設定します。