Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

CSSFontPaletteValuesRule: Eigenschaft overrideColors

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit November 2022 browserübergreifend verfügbar.

Die schreibgeschützte Eigenschaft overrideColors der Schnittstelle CSSFontPaletteValuesRule ist ein String mit einer Liste von Paaren aus Farbindex und Farbe, die stattdessen verwendet werden sollen. Sie wird im selben Format wie der entsprechende Deskriptor override-colors angegeben.

Wert

Ein String mit einer durch Kommas getrennten Liste von Paaren aus Farbindex und Farbe.

Beispiele

Die überschriebene Farbe auslesen

Dieses Beispiel definiert zunächst einige At-Rules, darunter zwei @font-palette-values. Die Infrastruktur für interaktive Beispiele von MDN fasst alle CSS-Blöcke des Beispiels in einem einzigen Inline-Stylesheet mit der ID css-output zusammen. Daher verwenden wir zuerst document.getElementById(), um dieses Stylesheet zu finden.

HTML

html
<div class="hat">
  <div class="emoji colored-hat">🎩</div>
</div>
<button>Toggle color</button>
<pre id="log"></pre>

CSS

css
@font-face {
  font-family: "Noto Color Emoji";
  font-style: normal;
  font-weight: normal;
  src: url("https://mdn.github.io/shared-assets/fonts/noto-color-emoji/NotoColorEmoji-Regular.woff2")
    format("woff2");
}

.emoji {
  font-family: "Noto Color Emoji", emoji;
  font-size: 3rem;
}

@font-palette-values --blue {
  font-family: "Noto Color Emoji";
  override-colors:
    3426 rgb(1 28 193),
    4614 rgb(60 124 230);
}

@font-palette-values --green {
  font-family: "Noto Color Emoji";
  override-colors:
    3426 rgb(28 193 1),
    4614 rgb(34 230 1);
}

.colored-hat {
  font-palette: --blue;
}

JavaScript

js
const log = document.getElementById("log");
const button = document.querySelector("button");
const hat = document.querySelector(".colored-hat");
const rules = document.getElementById("css-output").sheet.cssRules;
const greenFontPaletteValuesRule = rules[3];
const blueFontPaletteValuesRule = rules[2];
log.textContent = `Overridden colors: ${blueFontPaletteValuesRule.overrideColors}`;

button.addEventListener("click", (event) => {
  if (hat.style.fontPalette !== "--green") {
    hat.style.fontPalette = "--green";
    log.textContent = `Overridden colors: ${greenFontPaletteValuesRule.overrideColors}`;
  } else {
    hat.style.fontPalette = "--blue";
    log.textContent = `Overridden colors: ${blueFontPaletteValuesRule.overrideColors}`;
  }
});

Ergebnis

Spezifikationen

Spezifikation
CSS Fonts Module Level 4
# dom-cssfontpalettevaluesrule-overridecolors

Browser-Kompatibilität

Siehe auch