Detaillierte Erläuterung der Verwendung von var () von CSS3 zum Ändern von SCSS-Variablenwerten zur Laufzeit

Detaillierte Erläuterung der Verwendung von var () von CSS3 zum Ändern von SCSS-Variablenwerten zur Laufzeit

var() Einführung und Verwendung

Details (MDN) IE ist ungültig, andere gängige Browser sind gültig

var()-Verwendung

Kann nur in {} deklariert werden, der Gültigkeitsbereich wird durch den Selektor von {} bestimmt

<!-- Haftungsausschluss-->
Körper{
  --name:value; //Gültig im Text}


<!-- Verwendung -->
.prüfen{
  attr: var(--name,defaultValue) //Wenn --name nicht existiert, verwende defaultValue
  
  var(--name):#369;//Falsche Verwendung}

Die native Syntax zur Variablendefinition in CSS lautet: –*, und die Syntax zur Variablenverwendung lautet: var(–*), wobei * unseren Variablennamen darstellt.

Es darf jedoch keine Zeichen wie $, [, ^, (, %, usw. enthalten. Gewöhnliche Zeichen sind auf die Kombination aus „Zahlen [0-9]“, „Buchstaben [a-zA-Z]“, „Unterstrich _“ und „Bindestrich -“ beschränkt, es kann jedoch chinesischer, japanischer oder koreanischer Art sein.

Ändern von SCSS-Variablenwerten zur Laufzeit

Diese Methode ändert den Wert der SCSSSS-Variable nicht direkt, kann aber denselben Effekt erzielen. Es ist effektiver und prägnanter, wenn eine Variable mehrere Attribute steuert. Es ist nicht notwendig, eine einzelne Variable zu verwenden, um ein einzelnes Attribut zu steuern. Diese Methode dient lediglich zum Ändern des Stilattributs. Eins-zu-eins ist dasselbe wie das Schreiben des Attributs im Stil.

Prinzip (Englisch)

Einfach ausgedrückt werden die SCSS-Variablen durch CSS-Variablen gesteuert

$farben: (
  primär: #FFBB00,
  sekundär: #0969A2
);

Selektor1{
  @each $name, $farbe in $farben {
    --Farbe-#{$name}: $Farbe;
  }
}

<!-- Generierungseffekt von Selector1-->
:Wurzel {
  --Farbe-Primär: #FFBB00;
  --Farbe-Sekundär: #0969A2;
}


<!-- Verwendungsmethode 1: CSS-Variablen direkt verwenden -->
Wähler{
  Farbe: var(--color-primary);
}

<!-- Verwendung 2 verwendet SCSS-Funktionen, um den SCSS-Syntaxempfehlungen zu entsprechen -->  
@Funktion Farbe($Farbname) {
  @return var(--color-#{$color-name});
}

Körper { 
  Farbe: Farbe (primär); //Verwenden}

<!-- Körpergenerierungseffekt -->
Körper { 
  Farbe: var(--color-primary); //Dies kann von js festgelegt werden}

js setzt CSS-Variablen, d. h. setzt und führt SCSS-Variablen aus

domObject.style.setProperty(name,value); //Name ist der Name der CSS-Variable, zB: --color-primary

Bisher wurde die Laufzeitänderung der Variablenwerte in SCSS abgeschlossen. Ich bin mir über das spezifische Anwendungsszenario nicht sicher, aber ich bin darauf gestoßen.

Mein Anwendungsszenario:

Benutzerdefinierte Komponenten müssen einige Stileigenschaften offenlegen, damit Benutzer sie frei anpassen können, ähnlich wie Designs, aber ich möchte keine Zeichenfolgenverkettung verwenden, um sie abzuschließen, was zu verschwenderisch ist. Jedes Mal, wenn ein Wert geändert wird, muss der gesamte Stil neu geschrieben werden, und dies erfordert häufige Änderungen am DOM, was nicht mit der Idee von Vue übereinstimmt, und es ist zu umständlich, direkt in CSS zu schreiben.

Ich verwende also SCSS, um Stile zu schreiben. Die Verschachtelung von SCSS ist wirklich einfach zu verwenden. LESS unterstützt keine verschachtelten Attribute, was sehr unbequem zu verwenden und nicht so prägnant wie SCSS ist.
Da scss vorkompiliert ist, kann der Variablenwert zur Laufzeit nicht geändert werden und ich muss ihn ändern. Deshalb habe ich bei Google eine zufriedenstellende Lösung gefunden -> Prinzip (Englisch)

Besondere Aufmerksamkeit

Wenn Sie „scoped“ in einer einzelnen Dateikomponente (.vue) verwenden, sind die Effekte von Selektoren wie :root und :body nicht wie erwartet.

[data-v-1374924e]:Wurzel {
  --Test: 100px;
}

In diesem Fall kann die Variable -test überhaupt nicht gefunden werden, da keine Wurzel vorhanden ist. Das Scoped-Feature der Vue-Komponente ist nur in dieser Komponente gültig, aber die Komponente hat kein vollständiges Dokument, d. h. es gibt keine Wurzel innerhalb der Komponente.

Berücksichtigen Sie daher in der Vue-Datei sorgfältig den Selektorbereich der CSS-Variablendeklaration, um ungültige Variablen zu vermeiden

Damit ist dieser Artikel über die Verwendung von var() in CSS3 zum Ändern von SCSS-Variablenwerten zur Laufzeit abgeschlossen. Weitere Informationen zum Ändern von SCSS-Variablenwerten mit CSS3 finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  So kehren Sie schnell von unten nach oben zurück, wenn die Webseite zu viele Inhalte enthält

>>:  So verwenden Sie CURRENT_TIMESTAMP in MySQL

Artikel empfehlen

Antworten auf mehrere häufig gestellte MySQL-Interviewfragen

Vorwort: Bei Vorstellungsgesprächen für verschied...

Lösung für die verstümmelte Anzeige von Linux SecureCRT

Sehen wir uns die Situation an, in der SecureCRT ...

Einführung in general_log-Protokollwissenspunkte in MySQL

Die folgenden Funktionsdemonstrationen basieren a...

Mysql 5.6.37 Winx64-Installation Dual-Version MySQL-Hinweise

Wenn MySQL Version 5.0 bereits auf dem Computer v...

Vergleich von mydumper und mysqldump in MySQL

Wenn Sie nur ein paar Tabellen oder eine einzelne...

JS erzielt Fünf-Sterne-Lobeffekt

Verwenden Sie JS, um objektorientierte Methoden z...

Fallstudie zu JavaScript-Funktionsaufrufen, Apply- und Bind-Methoden

Zusammenfassen 1. Ähnlichkeiten Beide können den ...

HTML verwendet Laufschrift, um Text nach links und rechts scrollen zu lassen

Code kopieren Der Code lautet wie folgt: <KÖRP...

Die Umsetzung von Youdas neuem Petite-Vue

Inhaltsverzeichnis Vorwort Einführung Live Einfac...

So verwenden Sie die Shell, um Batchvorgänge auf mehreren Servern auszuführen

Inhaltsverzeichnis SSH-Protokoll SSH Verbindungsp...

Befehle zum Deaktivieren und Aktivieren von MySQL-Fremdschlüsseleinschränkungen

Deaktivieren und Aktivieren von MySQL-Fremdschlüs...

Lösung für Tomcat zum externen Speichern von Konfigurationsdateien

Frage Wenn wir bei der normalen Entwicklung das P...

Einfaches Anwendungsbeispiel für rekursive MySQL 8.0-Abfragen

Vorwort Dieser Artikel verwendet die neuen Funkti...

Detaillierte Erläuterung der Vue-Formularbindung und -Komponenten

Inhaltsverzeichnis 1. Was ist bidirektionale Date...