CSS Nesting

CSS Nesting erlaubt es dir, CSS-Regeln verschachtelt zu schreiben – ähnlich wie du es vielleicht aus SCSS/Sass kennst, aber nativ in CSS.

Statt wiederholt lange Selektoren auszuschreiben, kannst du Regeln logisch ineinander legen. Das macht Styles:

  • besser lesbar
  • leichter wartbar
  • strukturierter

Grundidee

CSS (ohne Nesting)

.card {
padding: 1rem;
}

.card h2 {
font-size: 1.5rem;
}

.card p {
color: #555;
}

CSS Nesting

.card {
    padding: 1rem;
    h2 {
    font-size: 1.5rem;
    }
    p {
    color: #555;
    }
}

Prinzip

Alles, was innen steht, wird automatisch mit dem äusseren Selektor kombiniert.

.parent {
    color: black;

    .child {
    color: red;
    }
}

-> Entspricht

.parent .child {
color: red;
}

Der &-Operator

Das & steht für den aktuellen Selektor.


button {
    background: blue;

    &:hover {
    background: darkblue;
    }
}

-> Wird zu


button:hover { ... }

Modifier


.button {
    padding: 1rem;

    &--primary {
    background: blue;
    }
}

Wird zu .button--primary


Kombinationen


.card {
    &.active {
    border: 2px solid green;
    }
}

Wird zu .card.active


Nesting & Kombinatoren

Direkte Kinder >


ul {
    > li {
    list-style: none;
    }
}

Geschwister +, ~


h2 {
    + p {
    margin-top: 0;
    }
}

Nesting mit Media Queries


.card {
    padding: 1rem;

    @media (min-width: 768px) {
        padding: 2rem;
    }
}

-> Bezieht sich nur auf .card.


Browser-Support

CSS Nesting ist modernes CSS.
Unterstützt in aktuellen Versionen von:
Chrome, Edge, Safari, Firefox (neuere Versionen)


Vertiefe dein Wissen mit einer Übung