Interpolacija numeričnih spremenljivk CSS PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Interpolacija numeričnih spremenljivk CSS

V CSS lahko naredimo spremenljivke zelo preprosto:

:root {
  --scale: 1;
}

Lahko jih deklariramo na katerem koli elementu:

.thing {
  transform: scale(--scale);
}

Še bolje za primer, kot je ta, je uporaba spremenljivke pri uporabniški interakciji, recimo :hover:

:root {
  --scale: 1;
}

.thing {
  height: 100px;
  transform: scale(--scale);
  width: 100px;
}

.thing:hover {
  --scale: 3;
}

Če pa bi to spremenljivko želeli uporabiti v animaciji ... ni.

:root {
  --scale: 1;
}

@keyframes scale {
  from { --scale: 0; }
  to { --scale: 3; }
}

/* Nope! */
.thing {
  animation: scale .25s ease-in;
  height: 100px;
  width: 100px;
}

To je zato, ker je spremenljivka prepoznana kot niz in tisto, kar potrebujemo, je število, ki ga je mogoče interpolirati med dve številski vrednosti. Tam se lahko oglasimo @property da ne le registrirate spremenljivko kot lastnost po meri, ampak definirate njeno sintakso kot število:

@property --scale {
  syntax: "<number>";
  initial-value: 1;
  inherits: true;
}

Zdaj dobimo animacijo!

Želeli boste preveri podporo brskalnika saj @property je pristal samo v Chromu (začenši v različica 85) od tega pisanja. In če upate, da ga boste povohali s @supports, trenutno nimamo sreče, ker ne sprejema pravil at kot vrednosti ... še. To se bo enkrat spremenilo at-rule()postane prava stvar.

Časovni žig:

Več od Triki CSS