wilmaed: SASS-Funktion: is-superset()

laut sass-doc:

is_superselector($super, $sub) $super matches all the elements that $sub matches, as well as possibly additional elements. In general, simpler selectors tend to be superselectors of more complex oned.

Der Universal-Selektor * müsste doch Super von allem sein:

b
  content:  is-superselector("*","body")
  

Das Resultat ist ein false:

b {
  content: false;
}

Wo liegt mein Denkfehler?

Danke

  1. Hat sich erledigt. Es geht nicht darum, ob "$super matches all the elements that $sub matches", sondern ob $super das "Ende" von $sub darstellt.

    b
      content:  is-superselector("*","bar *")
      content:  is-superselector("*","bar * foo")
      content:  is-superselector("* foo","bar * foo")
      content:  is-superselector("* foo, nav","bar * foo")
    

    ergibt:

    b {
      content: true;
      content: false;
      content: true;
      content: true;
    }
    
    1. Seltsam ist, dass das hier true ergibt:

      is-superselector("* foo,nav","bar * foo")

      und das hier false:

      is-superselector("* foo","menu,bar * foo,body")

      1. Hallo,

        Seltsam ist, dass das hier true ergibt:

        is-superselector("* foo,nav","bar * foo")

        nö, das ist nicht seltsam: was mit bar * foo selektiert wird, wird auch mit * foo selektiert.

        und das hier false:

        is-superselector("* foo","menu,bar * foo,body")

        was mit menu selektiert wird, wird eben nicht von * foo erfasst.

        Gruß
        Kalk