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

View in English Always switch to English

CSSFontFeatureValuesMap

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die CSSFontFeatureValuesMap-Schnittstelle des CSS Object Model (CSSOM) stellt eine durchlaufbare und schreibgeschützte Menge von CSSFontFeatureValuesRule-Eigenschaften dar, wie zum Beispiel swash, annotation, ornaments usw.

Eine Instanz von CSSFontFeatureValuesMap ist ein schreibgeschütztes Map-ähnliches Objekt, bei dem jeder Schlüssel der benutzerdefinierte Name ist, der verwendet wird, um auf eine Schriftartfunktion zu verweisen, und der entsprechende Wert der Index für die Schriftartfunktion innerhalb der Schriftart ist.

Instanzeigenschaft

CSSFontFeatureValuesMap.size

Gibt eine positive Ganzzahl zurück, die die Größe des CSSFontFeatureValuesMap-Objekts enthält.

Instanzmethoden

CSSFontFeatureValuesMap.clear()

Entfernt alle Deklarationen in der CSSFontFeatureValuesMap.

CSSFontFeatureValuesMap.delete()

Entfernt die CSS-Deklaration mit der angegebenen Eigenschaft in der CSSFontFeatureValuesMap.

CSSFontFeatureValuesMap.entries()

Gibt ein neues Map-Iterator-Objekt zurück, das die [key, value]-Paare für jede Deklaration in dieser CSSFontFeatureValuesMap in Einfügereihenfolge enthält.

CSSFontFeatureValuesMap.forEach()

Führt eine bereitgestellte Funktion einmal pro Schlüssel/Werte-Paar in dieser CSSFontFeatureValuesMap in Einfügereihenfolge aus.

CSSFontFeatureValuesMap.get()

Gibt den Wert zurück, der dem Schlüssel in dieser CSSFontFeatureValuesMap entspricht, oder undefined, wenn keiner vorhanden ist.

CSSFontFeatureValuesMap.has()

Gibt einen booleschen Wert zurück, der angibt, ob ein Eintrag mit dem angegebenen Schlüssel in dieser CSSFontFeatureValuesMap existiert oder nicht.

CSSFontFeatureValuesMap.keys()

Gibt ein neues Map-Iterator-Objekt zurück, das den key für jede Deklaration in dieser CSSFontFeatureValuesMap in Einfügereihenfolge enthält.

CSSFontFeatureValuesMap.set()

Fügt einen neuen Eintrag mit einem angegebenen Schlüssel und Wert zu dieser CSSFontFeatureValuesMap hinzu oder aktualisiert einen vorhandenen Eintrag, wenn der Schlüssel bereits existiert.

CSSFontFeatureValuesMap.values()

Gibt ein neues Map-Iterator-Objekt zurück, das den value für jede Deklaration in dieser CSSFontFeatureValuesMap in Einfügereihenfolge enthält.

CSSFontFeatureValuesMap.[Symbol.iterator]()

Gibt das Iterator-Objekt selbst zurück. Dies ermöglicht es, dass Iterator-Objekte auch durchlaufbar sind.

Beispiele

Benutzerdefinierte Namen protokollieren

Dieses Beispiel zeigt, wie Sie die benutzerdefinierten Namen (und ihre zugeordneten Indizes) protokollieren können, die in einer CSSFontFeatureValuesMap gespeichert sind (für bestimmte CSSFontFeatureValuesRule-Eigenschaften).

CSS

Zuerst deklarieren wir ein @font-feature-values für die Schriftfamilie Font One. Dies beinhaltet die Deklaration der Namen "nice-style" und "odd-style", die verwendet werden können, um die styleset-alternativen Glyphen für Font One zu repräsentieren und die Indexwerte für diese Alternativen festzulegen. Es beinhaltet auch die Deklaration des Namens "swishy", der verwendet werden kann, um die swash-alternativen Glyphen für Font One zu repräsentieren und den Index für diese Alternative festzulegen.

Die "nice-style" alternativen Glyphen werden dann für jede .nice-look-Klasse angewendet, indem die Eigenschaft font-variant-alternates verwendet wird und der Name an die styleset()-Funktion übergeben wird. Das Gleiche wird für den Namen "swishy" für die swash-alternativen Glyphen getan, die dann an die swash()-Funktion übergeben wird. Die "odd-style" Glyphen werden nicht verwendet (sie sind nur hinzugefügt, um zu demonstrieren, dass mehrere Werte in der Map definiert werden können).

css
/* At-rule for "nice-style", "odd-style", and "swishy" in Font One */
@font-feature-values Font One {
  @styleset {
    nice-style: 12; /* name used to represent the alternate set of glyphs at index 12 */
    odd-style: 10; /* name used to represent the alternate set of glyphs at index 10 */
  }
  @swash {
    swishy: 1; /* name used to represent the alternate set of glyphs at index 1 */
  }
}

/* Apply the at-rules to the appropriate selectors */
.nice-look {
  font-variant-alternates: styleset(nice-style);
}
.swoosh {
  font-variant-alternates: swash(swishy);
}

JavaScript

Der folgende Code findet die entsprechende CSSFontFeatureValuesRule für die oben hinzugefügte CSS-@font-feature-values-At-Regel. Er iteriert dann die Werte der styleset- und swash-Eigenschaften, die durch CSSFontFeatureValuesMap-Instanzen dargestellt werden, unter Verwendung der forEach()-Methode. Bei jedem Schritt protokolliert er die benutzerdefinierten Namen und Indexwerte.

js
const logElement = document.querySelector("#log");
function log(text) {
  logElement.innerText = `${logElement.innerText}${text}\n`;
  logElement.scrollTop = logElement.scrollHeight;
}
js
const rules = document.querySelector("#css-output").sheet.cssRules;
const fontOne = rules[0]; // A CSSFontFeatureValuesRule
if (fontOne.styleset) {
  // styleset property is supported
  log(
    "The user has defined the following name(s)/index(s) for CSSFontFeatureValuesRule.styleset:",
  );
  fontOne.styleset.forEach((value, key) => log(` ${key} : ${value}`));
} else {
  log("Browser does not support CSSFontFeatureValuesMap.styleset property.");
}

if (fontOne.swash) {
  log(
    "The user has defined the following name(s)/index(s) for CSSFontFeatureValuesRule.swash:",
  );
  fontOne.swash.forEach((value, key) => log(` ${key} : ${value}`));
} else {
  log("Browser does not support CSSFontFeatureValuesMap.swash property.");
}

Ergebnis

Spezifikationen

Specification
CSS Fonts Module Level 4
# cssfontfeaturevaluesmap

Browser-Kompatibilität

Siehe auch