Heim > Web-Frontend > CSS-Tutorial > Wie erreicht man geerbte Werte mit CSS-Variablen?

Wie erreicht man geerbte Werte mit CSS-Variablen?

Barbara Streisand
Freigeben: 2024-11-14 16:38:02
Original
1101 Leute haben es durchsucht

How to Achieve Inherited Values with CSS Variables?

Wie speichere ich einen geerbten Wert in einer CSS-Variablen (auch bekannt als benutzerdefinierte Eigenschaft)?

Szenario

Bedenken Sie den folgenden CSS-Code:

:root {
  --color: rgba(20, 20, 20, 0.5);
}

.box {
  width: 50px;
  height: 50px;
  display: inline-block;
  margin-right: 30px;
  border-radius: 50%;
  position: relative;
}

.red {
  background: rgba(255, 0, 0, 0.5);
}

.blue {
  background: rgba(0, 255, 0, 0.5);
}

.box:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 50%;
  transform: translateX(30px);
  background: var(--color);
  filter: invert(1);
}
Nach dem Login kopieren

In diesem Code verwenden wir --color, um den Hintergrund des Pseudoelements des .box-Elements zu steuern. Es kann jedoch vorkommen, dass wir die Farbe vom übergeordneten .box-Element erben möchten.

CSS-Variablenvererbungsherausforderung

In CSS wird das Schlüsselwort „inherit“ nicht als Wert für unterstützt CSS-Variablen. Das bedeutet, dass wir --color nicht direkt so einstellen können, dass es vererbt, um den gewünschten Effekt zu erzielen.

Lösung: Fallback-Wert und Anfangswert verwenden

Um diese Einschränkung zu überwinden, können wir zwei Techniken anwenden:

1. Verwendung des Fallback-Werts:

Durch die Verwendung des Fallback-Werts in CSS-Variablen können wir der Eigenschaft mitteilen, dass sie inherit verwenden soll, wenn --color nicht explizit definiert ist.

background: var(--color, inherit);
Nach dem Login kopieren

Allerdings Da --color in diesem Fall immer auf Stammebene definiert und vererbt wird, wird der Fallback-Wert niemals verwendet.

2. Verwenden des Anfangswerts:

Wir können den Anfangswert verwenden, um die Farbe zu „undefinieren“ und die Verwendung des Fallback-Werts zu erzwingen. Gemäß der CSS-Spezifikation ist der Anfangswert ein leerer Wert, der eine besondere Interaktion mit var() hat.

.box:before {
  ...
  background: var(--color, inherit);
  ...
}

.box {
  ...
  --color: initial;
}
Nach dem Login kopieren

Mit dieser Modifikation können wir eine Vererbung von Werten innerhalb der CSS-Variablen erreichen, was uns ermöglicht um die Hintergrundfarbe basierend auf der Farbe des übergeordneten Elements zu steuern.

<div class="box red">
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erreicht man geerbte Werte mit CSS-Variablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage