我正在寻找一种方法,以不同的方式将一些CSS应用于元素,具体取决于后面的内容。例如,使用此HTML:
<ul>
<li>
<span class="title">Some Title</span>
<span class="subtitle">With Some Subtitle</span>
</li>
<li>
<span class="title">Only a Title</span>
</li>
</ul>
我想对.title
应用不同的规则,具体取决于是否有.subtitle
。
我能找到的最近的是相邻的兄弟选择器
.title + .subtitle { /* rules */ }
但是,这会将规则应用于以.subtitle
开头的.title
元素。相反,我希望规则适用于.title
元素后面带有.subtitle
元素。
注意:对于我目前的使用情况,浏览器广泛支持这一点并不重要。我唯一重要的目标是基于webkit。
答案 0 :(得分:6)
答案 1 :(得分:1)
我认为这需要在布局引擎中进行回溯,因此无法使用。你可以在jQuery中做到这一点而不是简单地说:
$('span.title + span.subtitle').prev().addClass('cssClass')