代码之家  ›  专栏  ›  技术社区  ›  Alex Wayne

CSS选择器将规则应用于元素if在另一个元素之前

  •  4
  • Alex Wayne  · 技术社区  · 15 年前

    <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 */ }
    

    但这适用于 前面有 .职务 . 相反,我希望规则适用于 带有

    注意:对于我目前的使用情况,浏览器广泛支持这一点并不重要。目前我唯一的目标是基于webkit的。

    2 回复  |  直到 15 年前
        1
  •  6
  •   Patrick McElhaney    15 年前

    世界上没有“年长”兄弟姐妹的兄弟组合词 CSS3 spec .

    在这种情况下,你也许可以逃脱惩罚 :only-child .

    li > span.title:only-child { /* rules */ }
    
        2
  •  1
  •   Scott Evernden    15 年前

    我认为这需要在布局引擎中进行回溯,因此不可用。不过,您可以在jQuery中简单地实现这一点:

    $('span.title + span.subtitle').prev().addClass('cssClass')