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.

Das CSSFontFeatureValuesMap-Interface des CSS Object Model (CSSOM) stellt eine durchlaufbare und schreibgeschützte Menge der CSSFontFeatureValuesRule-Eigenschaften dar, wie z.B. swash, annotation, ornaments, usw.

Eine Instanz von CSSFontFeatureValuesMap ist ein schreibgeschütztes Map-ähnliches Objekt, in dem jeder Schlüssel der benutzerdefinierte Name ist, der verwendet wird, um ein Schriftmerkmal zu referenzieren, und der entsprechende Wert der Index für das Schriftmerkmal innerhalb der Schriftart ist.

Instanz-Eigenschaften

CSSFontFeatureValuesMap.size

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

Instanz-Methoden

CSSFontFeatureValuesMap.clear()

Entfernt alle Deklarationen im CSSFontFeatureValuesMap.

CSSFontFeatureValuesMap.delete()

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

CSSFontFeatureValuesMap.entries()

Gibt ein neues Map-Iterator-Objekt zurück, das die [Schlüssel, Wert]-Paare für jede Deklaration in diesem CSSFontFeatureValuesMap in Einfüge-Reihenfolge enthält.

CSSFontFeatureValuesMap.forEach()

Führt eine bereitgestellte Funktion einmal pro Schlüssel/Wert-Paar in diesem CSSFontFeatureValuesMap in Einfüge-Reihenfolge aus.

CSSFontFeatureValuesMap.get()

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

CSSFontFeatureValuesMap.has()

Gibt einen Boolean zurück, der anzeigt, ob ein Eintrag mit dem angegebenen Schlüssel in diesem CSSFontFeatureValuesMap existiert oder nicht.

CSSFontFeatureValuesMap.keys()

Gibt ein neues Map-Iterator-Objekt zurück, das den Schlüssel für jede Deklaration in diesem CSSFontFeatureValuesMap in Einfüge-Reihenfolge enthält.

CSSFontFeatureValuesMap.set()

Fügt einen neuen Eintrag mit einem angegebenen Schlüssel und Wert zu diesem 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 Wert für jede Deklaration in diesem CSSFontFeatureValuesMap in Einfüge-Reihenfolge enthält.

CSSFontFeatureValuesMap.[Symbol.iterator]()

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

Beispiele

Benutzerdefinierte Namen protokollieren

Dieses Beispiel zeigt, wie Sie die benutzerdefinierten Namen (und deren zugeordnete Indizes), die in einem CSSFontFeatureValuesMap gespeichert sind, protokollieren können (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 zu spezifizieren. 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 zu spezifizieren.

Die "nice-style"-alternativen Glyphen werden dann für jede .nice-look-Klasse angewendet, indem die font-variant-alternates-Eigenschaft verwendet wird und der Name an die styleset()-Funktion übergeben wird. Dieselbe Vorgehensweise gilt für den Namen "swishy" für die swash-alternativen Glyphen, die dann an die swash()-Funktion übergeben wird. Die "odd-style"-Glyphen werden nicht verwendet (sie werden nur hinzugefügt, um zu demonstrieren, dass mehrere Werte in der Karte definiert sein 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 untenstehende Code findet die entsprechende CSSFontFeatureValuesRule für die oben hinzugefügte CSS-@font-feature-values-Regel. Dann iteriert er die Werte der styleset- und swash-Eigenschaften, die durch CSSFontFeatureValuesMap-Instanzen repräsentiert werden, unter Verwendung der forEach()-Methode. In 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