Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

CSS-Nesting-At-Regeln

Jede At-Regel, deren Body Stilregeln enthält, kann mittels CSS-Nesting in eine andere Stilregel verschachtelt werden. Stilregeln, die in At-Regeln verschachtelt sind, übernehmen ihre Verschachtelungsselektor-Definition von der nächstgelegenen übergeordneten Stilregel. Eigenschaften können direkt in eine verschachtelte At-Regel eingefügt werden, als ob sie in einem & {...} Block verschachtelt wären.

At-Regeln, die verschachtelt werden können

Beispiele

Verschachtelte @media-At-Regel

In diesem Beispiel sehen wir drei Blöcke von CSS. Der erste zeigt, wie man typische At-Regel-Verschachtelung schreibt, der zweite ist eine erweiterte Schreibweise der Verschachtelung, wie sie der Browser interpretiert, und der dritte zeigt das nicht-verschachtelte Äquivalent.

Verschachteltes CSS

css
.foo {
  display: grid;
  @media (orientation: landscape) {
    grid-auto-flow: column;
  }
}

Erweitertes verschachteltes CSS

css
.foo {
  display: grid;
  @media (orientation: landscape) {
    & {
      grid-auto-flow: column;
    }
  }
}

Nicht-verschachteltes Äquivalent

css
.foo {
  display: grid;
}

@media (orientation: landscape) {
  .foo {
    grid-auto-flow: column;
  }
}

Mehrere verschachtelte @media-At-Regeln

At-Regeln können innerhalb anderer At-Regeln verschachtelt werden. Unten sehen Sie ein Beispiel dafür und wie es ohne Verschachtelung geschrieben würde.

Verschachtelte At-Regeln

css
.foo {
  display: grid;
  @media (orientation: landscape) {
    grid-auto-flow: column;
    @media (width >= 1024px) {
      max-inline-size: 1024px;
    }
  }
}

Nicht-verschachteltes Äquivalent

css
.foo {
  display: grid;
}
@media (orientation: landscape) {
  .foo {
    grid-auto-flow: column;
  }
}
@media (orientation: landscape) and (width >= 1024px) {
  .foo {
    max-inline-size: 1024px;
  }
}

Verschachtelung von Kaskadenebenen (@layer)

Kaskadenebenen können verschachtelt werden, um Kinder-Ebenen zu erstellen. Diese werden mit einem . (Punkt) verbunden.

Definition der Eltern- & Kind-Ebenen

Wir beginnen mit der Definition der benannten Kaskadenebenen, bevor wir sie ohne Stilzuweisungen verwenden.

css
@layer base {
  @layer support;
}

Zuweisung von Regeln zu Ebenen mit Verschachtelung

Hier weist der .foo Selektor seine Regeln der base @layer zu. Die verschachtelte support @layer erstellt die base.support Unterebene, und der & Verschachtelungsselektor wird verwendet, um die Regeln für den .foo .bar Selektor zu erstellen.

css
.foo {
  @layer base {
    block-size: 100%;
    @layer support {
      & .bar {
        min-block-size: 100%;
      }
    }
  }
}

Äquivalent ohne Verschachtelung

css
@layer base {
  .foo {
    block-size: 100%;
  }
}
@layer base.support {
  .foo .bar {
    min-block-size: 100%;
  }
}

Siehe auch