Heim > Web-Frontend > Front-End-Fragen und Antworten > Vertieftes Verständnis von CSS-Variablen (organisierte Zusammenfassung)

Vertieftes Verständnis von CSS-Variablen (organisierte Zusammenfassung)

WBOY
Freigeben: 2022-01-26 16:53:29
nach vorne
1618 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen relevantes Wissen über CSS-Variablen und unterstützt nach und nach Verschachtelungen, Variablen und Funktionsfunktionen.

Vertieftes Verständnis von CSS-Variablen (organisierte Zusammenfassung)

Jeder, der Sass oder Less verwendet hat, weiß, dass sie hauptsächlich über Verschachtelungs-, Variablen- und Funktionsfunktionen verfügen können. Tatsächlich hat natives CSS begonnen, es nach und nach zu unterstützen. Es ist wahr, dass nur Sie und ich damit vertraut sind Wenn Sie CSS-Variablen verstehen, werden Sie feststellen, dass CSS von nun an äußerst leistungsfähig ist.

Variablendeklaration

Bei der Deklaration einer Variablen sollten vor dem Variablennamen zwei Bindestriche (--) eingefügt werden

// 局部声明
body {
  --foo: #ed145b;
  --bar: #F7EFD2;
}
// 全局声明
:root{
  --foo: #ed145b;
  --bar: #F7EFD2;
}
Nach dem Login kopieren

Zum Beispiel haben wir oben zwei Variablen deklariert: --foo und --bar In Sie müssen lediglich als benutzerdefinierte CSS-Eigenschaften verstanden werden. Sie unterscheiden sich nicht von formalen Eigenschaften wie Farbe und Schriftgröße, haben jedoch keine Standardbedeutung. Beachten Sie, dass bei CSS-Variablennamen die Groß- und Kleinschreibung beachtet werden muss wir schreiben ist nicht.

Sie fragen sich vielleicht, warum zwei Konjunktionslinien (--) zur Darstellung von Variablen ausgewählt werden? Weil $foo von Sass und @foo von Less verwendet wird. Um Konflikte zu vermeiden, verwenden die offiziellen CSS-Variablen stattdessen zwei Konjunktionslinien.

Namenskonvention

In Bezug auf die Benennung gibt es in verschiedenen Sprachen einige Hinweise. Beispielsweise können CSS-Selektoren nicht mit einer Zahl beginnen und Variablen in JS können nicht direkt numerisch sein. In CSS-Variablen gibt es diese Einschränkungen jedoch nicht , wie zum Beispiel:

:root {
  --1: #369;
}
body {
  background-color: var(--1);
}
Nach dem Login kopieren

darf keine Zeichen wie $, [, ^, (, %, usw.) enthalten. Gewöhnliche Zeichen sind auf „Zahlen [0-9]“, „Buchstaben [a-zA-Z]“, „ underscore_“ und „dash“ Line –“ diese Kombinationen, können aber Chinesisch, Japanisch oder Koreanisch sein, zum Beispiel:

body {
  --深蓝: #369;
  background-color: var(--深蓝);
}
Nach dem Login kopieren

var() function

Nach der Deklaration der Variablen möchten wir diese natürlich abrufen und verwenden, dann die Variable Die Funktion () wird zum Lesen des zweiten Parameters der Variablen

p {
  color: var(--foo);
  border::1px solid var(--bar);
}
Nach dem Login kopieren

var()

color: var(--foo, #ED145B); //第二个参数就是默认值,假设--foo为空情况下,会使用#ED145B
Nach dem Login kopieren

var() verwendet. Die Funktion kann auch in der Variablendeklaration verwendet werden

:root {
  --primary-color: red;
  --logo-text: var(--primary-color); // 上面刚声明,这里就可以使用
}
Nach dem Login kopieren

Variablenwerte können nur als Attributwerte verwendet werden, nicht Attributnamen

.foo {
  --side: margin-top;
  /* 很显然,下面是无效的 */
  var(--side): 20px;
}
Nach dem Login kopieren

Variablenwerttyp

Wenn der Variablenwert eine Zeichenfolge ist, kann er mit anderen Zeichenfolgen verkettet werden

--bar: 'hello';
--foo: var(--bar)' world';
// 示例
body:after {
  content: '--screen-category : 'var(--screen-category);
}
Nach dem Login kopieren

Wenn der Variablenwert ein numerischer Wert ist, kann er nicht direkt mit der numerischen Einheit verwendet werden

foo {
  --gap: 20;
  /* 下面无效 */
  margin-top: var(--gap)px;
 /* 通过calc去计算,下面有效 */
  margin-top: calc(var(--gap) * 1px);
}
Nach dem Login kopieren

If Der Variablenwert hat eine Einheit und kann nicht als Zeichenfolge geschrieben werden "Regel von CSS.

/* 无效 */
.foo {
  --foo: '20px';
  font-size: var(--foo);
}
/* 有效 */
.foo {
  --foo: 20px;
  font-size: var(--foo);
}
Nach dem Login kopieren

Im obigen Code deklarieren die drei Selektoren alle die Variable --color. Wenn verschiedene Elemente diese Variable lesen, wird die Regel mit der höchsten Priorität verwendet, also die Farben der drei Absätze von Text ist unterschiedlich.

Kompatibilitätsverarbeitung

Für Browser, die nicht unterstützt werden, können Sie die folgende Schreibmethode verwenden:

<style>
  :root { --color: blue; }
  div { --color: green; }
  #alert { --color: red; }
  * { color: var(--color); }
</style>
<p>蓝色</p>
<div>绿色</div>
<div id="alert">红色</div>
Nach dem Login kopieren

JavaScript-Operation (Essenz).

JavaScript Sie können auch erkennen, ob der Browser CSS-Variablen unterstützt

a {
  color: #7F583F;
  color: var(--primary); // 应该很好理解,如果这里读不出值,那么并不会覆盖上面的color
}
Nach dem Login kopieren

JavaScript-Operation CSS-Variablen-Schreibmethode Wie unten gezeigt

a {
@supports ( (--a: 0)) {
  /* supported */
}
@supports ( not (--a: 0)) {
  /* not supported */
}
Nach dem Login kopieren

Dies bedeutet, dass JavaScript jeden Wert im Stylesheet speichern kann. Unten finden Sie ein Beispiel für das Abhören eines Ereignisses , und die Ereignisinformationen werden in einer CSS-Variablen gespeichert

const isSupported =
  window.CSS &&
  window.CSS.supports &&
  window.CSS.supports(&#39;--a&#39;, 0);
if (isSupported) {
  /* supported */
} else {
  /* not supported */
}
Nach dem Login kopieren

Das bedeutet, dass JavaScript jeden Wert im Stylesheet speichern kann. Das Folgende ist ein Beispiel für die Überwachung von Ereignissen. Die Ereignisinformationen werden in CSS-Variablen gespeichert Für CSS unbrauchbar, kann auch in CSS-Variablen eingefügt werden

rrree

Im obigen Code ist der Wert von --foo eine ungültige Anweisung in CSS, kann aber von JavaScript gelesen werden. Dies bedeutet, dass Stileinstellungen in CSS-Variablen geschrieben werden können und von JavaScript gelesen. Daher bieten CSS-Variablen eine Möglichkeit für JavaScript, mit CSS zu kommunizieren Verbindung zwischen CSS und JS

Es hindert Sie nicht daran, Sass/Less zu verwenden, es kann kombiniert und verwendet werden

(Lernvideo-Sharing:

CSS-Video-Tutorial

)

Das obige ist der detaillierte Inhalt vonVertieftes Verständnis von CSS-Variablen (organisierte Zusammenfassung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
css
Quelle:juejin.im
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 Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage