Matthias Apsel: sass compound selector nicht am Anfang

Beitrag lesen

Hallo alle,

der compound selector (&) darf leider nur am Anfang eines neuen Selektors stehen. Deshalb ist folgendes nicht möglich.

.classname {
  /* */
  a& {
    /* */
    &:link, &:visited {
      /* */
    }   
    &:focus, &:hover {
      /* */
    }
  }
  span& {
    /* */
  }
}

Lässt sich ähnliches geschickt umsetzen oder muss ich tatsächlich die entsprechenden Deklarationen doppeln?

a.classname, span.classname {
  /* styles */
  &:link, &:visited {
    /* */
  }   
  &:focus, &:hover {
    /* */
  }
}

Dieses ist zwar möglich, erzeugt aber CSS, was nicht sinnvoll ist (span.classname:link) und wendet die :hover-Deklarationen auch auf das span-Element an, was ggf. nicht erwünscht ist.

Also, gibt es einen Verbinder, der auch in der Mitte eines Selektors stehen darf?

Bis demnächst
Matthias

--
Wenn eine Idee nicht zuerst absurd erscheint, taugt sie nichts. (Albert Einstein)