Inhaltsblöcke in Mixins in SASS

Um einen Block von Stilen innerhalb eines Mixins zu übergeben, verwenden wir die Direktive @content, an deren Stelle die gewünschten Stile eingefügt werden.

Betrachten wir ein Beispiel:

styles.scss@mixin active {
  * div {
    @content;
  }
}

@include active {
  #block {
    color: red;
  }
}

Ergebnis der Kompilierung:

styles.css* div #block {
  color: red; 
}

Es ist wichtig zu wissen, dass wenn wir die Direktive @content mehr als einmal oder innerhalb einer Schleife angeben, der Block mit Stilen genauso oft aufgerufen wird.

styles.scss@mixin active {
  div {
    @content;
  }
navbar {
    @content;
  }
}
@include active {
  #block {
    color: red;
  }
  button {
    color:green;
  }
}

Nach der Kompilierung sehen wir:

styles.cssdiv #block {
  color: red; 
}
div button {
  color: green; 
}

navbar #block {
  color: red; 
}
navbar button {
  color: green; 
}
Задание 1

Erklären Sie, wie das Ergebnis der Kompilierung des folgenden Codes aussehen wird:

styles.scss@mixin super-link {
  a {
    @content;
  }
}
@include super-link {
  color: blue;
  text-decoration: underline;
}
Задание 2

Erklären Sie, wie das Ergebnis der Kompilierung des folgenden Codes aussehen wird:

styles.scss@mixin super-link {
  a {
    @content;
  }
  a .primary-link{
    @content;
    font-weight: bold;
  }
}
@include super-link {
  color: blue;
  text-decoration: underline;
}
Задание 3

Angenommen, Sie haben das folgende Mixin:

styles.scss@mixin colors {
  ...
}

Verwenden Sie die Direktive @content, um für alle Links, die zu #primary gehören, eine blaue Schriftfarbe und eine wellenförmige Unterstreichung festzulegen.