Heim >Web-Frontend >CSS-Tutorial >Warum werden meine benutzerdefinierten CSS-Eigenschaften mit Gültigkeitsbereich ignoriert, wenn sie in Outer-Scope-Berechnungen verwendet werden?

Warum werden meine benutzerdefinierten CSS-Eigenschaften mit Gültigkeitsbereich ignoriert, wenn sie in Outer-Scope-Berechnungen verwendet werden?

Susan Sarandon
Susan SarandonOriginal
2024-12-22 02:51:20256Durchsuche

Why Are My Scoped CSS Custom Properties Ignored When Used in Outer Scope Calculations?

Benutzerdefinierte CSS-Eigenschaft wird ignoriert, wenn sie zum Berechnen von Variablen im äußeren Gültigkeitsbereich verwendet wird

Beim Versuch, zusammensetzbares, lose gekoppeltes CSS zu erstellen, ist es wichtig, Folgendes zu tun den Geltungsbereich benutzerdefinierter Eigenschaften verstehen. In bestimmten Szenarien wirken sich Änderungen an einer bereichsbezogenen benutzerdefinierten Eigenschaft in einem untergeordneten Element möglicherweise nicht wie erwartet auf das übergeordnete Element aus.

Ein solches Szenario tritt auf, wenn eine benutzerdefinierte Eigenschaft zum Berechnen einer Variablen in einem äußeren Bereich verwendet wird. Das Problem tritt auf, wenn die benutzerdefinierte Eigenschaft erneut im untergeordneten Element definiert wird, wodurch die anfängliche Auswertung vom übergeordneten Element ignoriert wird.

Um dies zu veranschaulichen, betrachten Sie das folgende Beispiel:

:root {
  --size-1: calc(1 * var(--scale, 1) * 1rem);
  --size-2: calc(2 * var(--scale, 1) * 1rem);
  --size-3: calc(3 * var(--scale, 1) * 1rem);
}

.scale-1x {
  --scale: 1;
}

.scale-2x {
  --scale: 2;
}

.scale-3x {
  --scale: 3;
}

ol {
  font: 1em sans-serif;
}

.size-1 {
  font-size: var(--size-1);
}

.size-2 {
  font-size: var(--size-2);
}

.size-3 {
  font-size: var(--size-3);
}

In diesem Beispiel werden die --size-*-Eigenschaften auf der Stammebene mithilfe der benutzerdefinierten Eigenschaft --scale berechnet. Allerdings ist innerhalb der .scale-*-Klassen die Eigenschaft --scale erneut definiert. Dies führt dazu, dass der geerbte Wert von --scale vom Stammelement ignoriert wird, was dazu führt, dass die --size-*-Eigenschaften mit dem Standardwert von --scale berechnet werden: 1.

Um dieses Problem zu vermeiden, Es ist wichtig, benutzerdefinierte Eigenschaften auf der entsprechenden Ebene zu definieren und eine Neudefinition in untergeordneten Elementen zu vermeiden. Dadurch wird sichergestellt, dass bereichsspezifische benutzerdefinierte Eigenschaften effektiv verwendet werden können, um Variablen in äußeren Bereichen zu berechnen und zusammensetzbares, lose gekoppeltes CSS zu erreichen.

Das obige ist der detaillierte Inhalt vonWarum werden meine benutzerdefinierten CSS-Eigenschaften mit Gültigkeitsbereich ignoriert, wenn sie in Outer-Scope-Berechnungen verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn