Gute Lektüre

CSS-Spezifität beherrschen: Der ultimative Leitfaden für Webflow

__wf_reserviert_dekorativ
CSS-Spezifität beherrschen: Der ultimative Leitfaden für Webflow
June 20, 2024

  · 10 min

Egal, ob Sie ein erfahrener Profi sind oder gerade erst anfangen, das Verständnis der Besonderheiten ist entscheidend, um sicherzustellen, dass sich Ihre Styles genau so verhalten, wie Sie es erwarten.

Okay, Webflow-Ninjas, es ist an der Zeit, das Biest anzugehen, das die CSS-Spezifität ist. Und um dies so umfassend wie möglich zu gestalten, werden wir auch untersuchen, wie das Client-First-System von Finsweet dazu beitragen kann, dass Ihr CSS sauber und wartbar bleibt und das alte Stylesheet klein bleibt. Wir sind heutzutage nur ein kleines „einziges“ Webflow-Studio, aber wir haben ein bisschen mit diesem Spiel angefangen, bevor wir Webflow benutzt haben, also hatten wir ein ziemlich gutes Verständnis von CSS, aber wir verstehen absolut, dass viele Webflow-Designer CSS zum ersten Mal in Webflow lernen, und daran ist nichts falsch. Sich so schnell wie möglich mit der CSS-Spezifität auseinanderzusetzen, macht die Arbeit für einen Webflow-Entwickler einfach viel einfacher. Aber genug davon, lassen Sie uns gleich loslegen.

Was ist CSS-Spezifität?

Stellen Sie sich die CSS-Spezifität als ein Punktesystem vor, bei dem verschiedene Arten von Selektoren unterschiedliche Werte zum Spezifitätswert beitragen. Je höher die Spezifität, desto mehr Priorität hat die Regel. Hier ist eine Aufschlüsselung der Spezifitätshierarchie:

  1. Inline-Stile: 1000 Punkte. Dies sind die spezifischsten.
  2. Ausweise: 100 Punkte. Sehr spezifisch.
  3. Klassen, Attribute und Pseudoklassen: jeweils 10 Punkte. Mäßig spezifisch.
  4. Elemente und Pseudoelemente: Jeweils 1 Punkt. Am wenigsten spezifisch.
CSS Specificity

CSS-Spezifität

Beispiel für eine Berechnung:

  • #header = 100 Punkte (ID-Selektor).
  • .menu .item = 10 + 10 = 20 Punkte (zwei Klassenwähler).
  • ul li a = 1 + 1 + 1 = 3 Punkte (drei Element-Selektoren).

Lassen Sie uns das anhand weiterer Beispiele weiter aufschlüsseln, um zu verdeutlichen, wie Spezifität in realen Szenarien funktioniert.

Beispiel 1: Kombinieren von Selektoren

Beachten Sie diese Regeln:

#nav {Farbe: blau;} /* 100 Punkte */
.nav-item {color: green;} /* 10 Punkte */
.nav-item a {color: red;} /* 11 Punkte */

Ein Anker <!-- fs-richtext-ignore --><a>innerhalb eines Elements mit der ID #nav und die Klasse .nav-item wird aufgrund der Spezifität von rot sein 11 Punkte aus dem .nav-item a Selektor, der eine höhere Spezifität hat als .nav-item.

Beispiel 2: Übergeordnete Spezifität

Beachten Sie diese Regeln:

#content {Hintergrundfarbe: gelb;} /* 100 Punkte */
.section {background-color: pink;} /* 10 Punkte */
p {background-color: hellblau;} /* 1 Punkt */

EIN <!-- fs-richtext-ignore --><p>Element innerhalb eines Elements mit der ID #content und Klasse . Abschnitt wird aufgrund der höheren Spezifität des ID-Selektors einen gelben Hintergrund haben.

Spezifität in Webflow

Webflow ist fantastisch für visuelles Webdesign, aber unter der Haube ist alles CSS. Wenn Sie die Spezifität verstehen, können Sie herausfinden, warum bestimmte Stile nicht zutreffen.

Beispiel in Webflow

Stellen Sie sich vor, Sie haben diese CSS-Regeln:

#hero {Farbe: rot;}
.header {Farbe: blau;}
p {Farbe: grün;}

Ein Absatz innerhalb eines Elements mit der ID #hero und Klasse . Kopfzeile wird aufgrund der höheren Spezifität des ID-Selektors rot sein.

Um dies zu erweitern, schauen wir uns ein komplexeres Beispiel an:

#main -content .article h2 {font-size: 2em;} /* 111 Punkte */
.article h2 {font-size: 1.5em;} /* 21 Punkte */
h2 {Schriftgröße: 1em;} /* 1 Punkt */

Hier, ein h2 innerhalb eines Elements mit der ID #main -Inhalt und Klasse .artikel wird eine Schriftgröße von haben 2em.

Webflow-Designer

Nun, das scheint super einfach zu sein, natürlich ist es in Webflow ein bisschen anders, es ist eine visuelle Entwicklungsplattform, also was ist was und wo sehe ich sie und was gilt wofür?

All diese Fragen sind absolut gültig, da Sie nur das Element im Designer wie in der Abbildung unten betrachten, außer dem Klassennamen nicht viel aussagen.

 

Heading Element in Webflow

Überschriftenelement in Webflow

Also, was sagt dir der Designer? Zunächst einmal können wir die Struktur leicht erkennen, was uns sofort hilft.

Structure wrapping an element in Webflow

Struktur, die ein Element in Webflow umschließt

Noch wichtiger ist jedoch, dass wir genau sehen können, wovon das Element erbt, wenn wir rechts neben dem Designer direkt über dem Klassennamen klicken.

Wefblow inheriting selectors

Webblow erbt Selektoren

Das kundenorientierte System von Finstweet

Das Client-First-System von Finsweet ist ein entscheidender Faktor, wenn es darum geht, Ihre Webflow-Projekte organisiert und skalierbar zu halten. Es betont einen strukturierten CSS-Ansatz, der es einfach zu verstehen und zu verwalten macht.

Kernprinzipien von Client-First

  • Weltweite Klassen: Definieren Sie allgemeine Stile, die in Ihrem gesamten Projekt wiederverwendet werden können.
  • Komponentenklassen: Spezifisch für einzelne Komponenten, wodurch Stile modular sind.
  • Nutzungsklassen: Einzweckklassen für kleinere Anpassungen.

Beispiel:

.global-text-color {Farbe: #333;}
.component-card {Polsterung: 20px;}
.utility-margin-bottom {margin-bottom: 10 px;}

Erweiterung des Client-First-Systems von Finstweet:

Arten von Klassen in Client-First

  1. Nutzungsklassen: Wird global für bestimmte CSS-Eigenschaften angewendet.
    • Beispiel: .background-color-primary {Hintergrundfarbe: #ff0000;}
  2. Benutzerdefinierte Klassen: Spezifisch für Komponenten oder Elemente, oft mit Unterstrichen.
    • Beispiel: header_hintergrundebene
  3. Weltweite Klassen: Wird im gesamten Projekt verwendet, um Einheitlichkeit zu gewährleisten.
    • Beispiel: .margin-large {Rand: 3rem;}

Verwenden von Combo-Klassen

Kombinationsklassen in Client-First verwenden eine Basisklasse und fügen Variationen hinzu mit ist- Präfix.

  • Beispiel: Schaltfläche ist-primär {background-color: #007bff;}

Vermeiden Sie tiefes Stapeln

Deep Stacking bezieht sich auf das Stapeln vieler Klassen auf einem Element, wovon Client-First abrät. Verwenden Sie stattdessen organisierte, klare Klassennamen, um die Lesbarkeit und Verwaltbarkeit zu gewährleisten.

  • Beispiel für Deep Stacking: class="text-bold text-large text-center“
  • Besserer Ansatz: Verwenden Sie eine einzelne, benutzerdefinierte Klasse wie .header-Text

Praktische Tipps zum Umgang mit Spezifität

  1. Vermeiden Sie Inline-Styles: Sie haben die höchste Spezifität und können alles andere außer Kraft setzen.
  2. Verwenden Sie ID-Selektoren sparsam: Diese können Ihr CSS komplizieren, wenn sie übermäßig verwendet werden.
  3. Ordnen Sie Stile hierarchisch an: Nutze Systeme wie Client-First, um dein CSS modular und wartbar zu halten.
  4. Nutzen Sie den Designer von Webflow: Visuelle Tools können dir helfen, deine Styles effektiv zu visualisieren und zu verwalten, aber es kann schwierig sein, sie neu anzuordnen, wenn du einmal angefangen hast. Klone immer den Finstweet Client-First Clonable oder andere wie Relume, wenn du diesen Weg gehen möchtest.
  5. Verwenden Sie die Finsweet Chrome-Erweiterung, um neu zu bestellen: Denken Sie daran, dass dies eine fortgeschrittene Version ist und Sie mit Ihrem Verständnis der CSS-Spezifität vertraut sein sollten, aber die Finsweet-Erweiterung ermöglicht es Ihnen, die Klassen in Webflow neu anzuordnen.

Teilen

Alle Beiträge

Hintergrund mit Farbverlauf