Home  >  Q&A  >  body text

Title rewritten to: Is there a "previous sibling selector"?

<p>The plus selector (<code> </code>) selects the next adjacent sibling element. </p> <p>Is there an equivalent selector for selecting the previous sibling? </p>
P粉262113569P粉262113569426 days ago418

reply all(2)I'll reply

  • P粉969253139

    P粉9692531392023-08-21 10:23:18

    I found a way to style all previous sibling elements (as opposed to ~), depending on your needs.

    Suppose you have a list of links, and when hovering over one of the links, all previous links should turn red. You can do this:

    /* 默认链接颜色是蓝色 */
    .parent a {
      color: blue;
    }
    
    /* 前一个兄弟元素应该是红色 */
    .parent:hover a {
      color: red;
    }
    .parent a:hover,
    .parent a:hover ~ a {
      color: blue;
    }
    <div class="parent">
      <a href="#">链接</a>
      <a href="#">链接</a>
      <a href="#">链接</a>
      <a href="#">链接</a>
      <a href="#">链接</a>
    </div>

    reply
    0
  • P粉797855790

    P粉7978557902023-08-21 09:05:50

    No, there is no "previous sibling" selector.

    In related comments, ~ is used for general successor sibling selectors (meaning that the element is after this element, but not necessarily immediately following), and is a CSS3 selector. is used for the next sibling selector, which is CSS2.1.

    See Adjacent Sibling Selectors from Selectors Level 3 and ## from Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification #5.7 Adjacent sibling selector.

    reply
    0
  • Cancelreply