[go: up one dir, main page]

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

View in English Always switch to English

type()

Limited availability

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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die type() CSS Funktion ermöglicht es Ihnen, einen bestimmten Datentyp festzulegen und wird von den folgenden CSS-Funktionen verwendet:

  • Die attr() Funktion, um den Datentyp festzulegen, in den ein Attributwert geparst werden soll.
  • Die @function Regel, um die erlaubten Datentypen für CSS-Parameter und Ergebnisse bei benutzerdefinierten Funktionen anzugeben.

Hinweis: Der Wert des @property Regel syntax Deskriptors verwendet die gleiche <syntax>, um die erlaubten Datentypen für registrierte benutzerdefinierte Eigenschaften zu definieren. Dies erfolgt jedoch immer in Form eines Strings.

Syntax

css
/* Single value */
type(<color>)
type(auto)

/* "|" combinator for multiple types */
type(<length> | <percentage>)

/* Space-separated list of values */
type(<color>+)

/* Comma-separated list of values */
type(<length>#)

/* Multiple keywords */
type(red | blue | green)

/* Combination of data type and keyword */
type(<percentage> | auto)

/* Universal syntax value */
type(*)

Parameter

Die Syntax der type() Funktion ist wie folgt:

type(<syntax>)

Der <syntax> Parameter ist ein Ausdruck, der den Datentyp definiert. Dieser kann die folgenden Formen annehmen:

<ident>

Ein CSS-Schlüsselwortwert, ohne spitze Klammern geschrieben.

<syntax-type>

Ein Typname, in spitzen Klammern geschrieben, der einen CSS-Datentyp darstellt. Die folgenden Datentypen werden unterstützt:

<angle>

Akzeptiert jeden gültigen <angle> Wert.

<color>

Akzeptiert jeden gültigen <color> Wert.

<custom-ident>

Akzeptiert jeden gültigen <custom-ident> Wert.

<image>

Akzeptiert jeden gültigen <image> Wert.

<integer>

Akzeptiert jeden gültigen <integer> Wert.

<length>

Akzeptiert jeden gültigen <length> Wert.

<length-percentage>

Akzeptiert jeden gültigen <length> oder <percentage> Wert und jeden gültigen calc() Ausdruck, der <length> und <percentage> Werte kombiniert.

<number>

Akzeptiert jeden gültigen <number> Wert.

<percentage>

Akzeptiert jeden gültigen <percentage> Wert.

<resolution>

Akzeptiert jeden gültigen <resolution> Wert.

<string>

Akzeptiert jeden gültigen <string> Wert.

<time>

Akzeptiert jeden gültigen <time> Wert.

<transform-function>

Akzeptiert jeden gültigen <transform-function> Wert.

<transform-list>

Akzeptiert eine Liste gültiger <transform-function> Werte. Dies entspricht "<transform-function>+" und darf nicht von einem + oder # Token gefolgt werden.

<url>

Akzeptiert jeden gültigen <url> Wert.

*

Die universelle Syntax.

Sie können <syntax-type> Werte mit den folgenden Token kombinieren:

+

Eine durch Leerzeichen getrennte Liste von Werten wird erwartet.

#

Eine durch Kommata getrennte Liste von Werten wird erwartet.

Zusätzlich kann das | Token als Trennzeichen verwendet werden, wenn mehrere Werte oder eine Kombination aus <ident> und <syntax-type> Werten angegeben werden.

Rückgabewert

Eine Datentypdefinition.

Beschreibung

Die type() Funktion wird verwendet, wenn Sie einen Datentyp definieren müssen. Sie kann als eine Untermenge der allgemeinen Wertedefinitionssyntax betrachtet werden, die verwendet wird, um die Menge der gültigen Werte für jede CSS-Eigenschaft und Funktion zu definieren.

Am häufigsten wird type() verwendet, um einen einzelnen Datentyp festzulegen. Das nächste Beispiel verwendet die attr() Funktion, um die background-color Eigenschaft gleich dem Wert einer benutzerdefinierten data-background Funktion zu setzen. Der benötigte Datentyp für den Wert wurde als <color> festgelegt.

css
background-color: attr(data-background type(<color>), red);

Sie könnten auch eine genaue Schlüsselwortanforderung angeben (zum Beispiel type(blue)), aber dies wäre zu einschränkend.

Die Angabe von type(*) erlaubt jeden gültigen CSS-Wert. Dies ist die universelle Syntax, die nicht multipliziert oder mit anderen Syntaxkomponenten kombiniert werden kann.

Festlegen mehrerer zulässiger Typen

Sie können das | Token als Trennzeichen verwenden, wenn Sie eine Auswahl an zulässigen Datentypen, Schlüsselwörtern oder eine Kombination aus beiden angeben. Zum Beispiel:

  • type(<length> | <percentage>)
  • type(red | green)
  • type(<length> | auto)

Das folgende Beispiel zeigt, wie eine @function Regel verwendet werden kann, um eine benutzerdefinierte Funktion zu definieren, die zwei Farbparameter nimmt und den ersten zurückgibt, es sei denn, die Ansichtsfensterbreite ist kleiner als 700px. In diesem Fall wird die zweite zurückgegeben. Der erste kann red oder green sein, während der zweite blue sein muss.

css
@function --color-choice(--color1 type(red | green), --color2 blue) {
  result: var(--color1);
  @media (width < 700px) {
    result: var(--color2);
  }
}

Hinweis: Im Fall von @function Datentypen können Sie die type() Funktion weglassen und den Wert einfach angeben, wenn nur ein Datentyp oder Schlüsselwort spezifiziert ist. Dies ist der Fall bei der blue Typdefinition in der vorherigen benutzerdefinierten Funktion. Dies funktioniert nicht mit der attr() Funktion.

Festlegen von Listen von Typen

Die + und # Token können an einen <syntax-type> angehängt werden, um anzugeben, dass Sie eine durch Leerzeichen getrennte Liste oder eine durch Kommata getrennte Liste erwarten. Zum Beispiel:

  • Ein <color>+ Parameter erwartet eine durch Leerzeichen getrennte Liste von <color> Werten, zum Beispiel red blue #a60000 rgb(234 45 100).
  • Ein <length># Parameter erwartet eine durch Kommata getrennte Listen von <length> Werten, zum Beispiel 30px, 1em, 15vw.

Sie können mehrere Token kombinieren, indem Sie | als Trennzeichen verwenden. Zum Beispiel würde <color># | <integer># eine durch Kommata getrennte Liste von <color> Werten oder eine durch Kommata getrennte Liste von <integer> Werten erwarten.

Formale Syntax

<type()> = 
type( <string> )

Beispiele

Sie finden mehrere andere Beispiele in der Dokumentation zu attr() und @function.

Grundlegende @function Datentypdefinition

Dieses Beispiel definiert eine benutzerdefinierte CSS-Funktion, die mehrere Zeichenfolgen kombiniert.

HTML

Das HTML enthält ein einziges <section> Element mit etwas Textinhalt.

html
<section>What you gonna say?</section>

CSS

Im CSS beginnen wir mit der Definition einer @function namens --combine-strings. Diese hat einen Parameter namens --strings, dessen Datentyp als eine oder mehrere durch Leerzeichen getrennte <string> Werte festgelegt ist. Sie gibt die Zeichenfolgenwerte mit einem Leerzeichen und einem Herz-Emoji am Ende zurück.

css
@function --combine-strings(--strings type(<string>+)) {
  result: var(--strings) " ❤️";
}

Dann spezifizieren wir einige grundlegende Stile für das <section> Element und verwenden die --combine-strings() Funktion, um den Wert der content Eigenschaft zu spezifizieren, wobei zwei mit Leerzeichen getrennte Zeichenfolgen als Argumente übergeben werden.

css
section {
  font-family: system-ui;
  background-color: lime;
  padding: 20px;
}

section::after {
  content: --combine-strings("hello" "goodbye");
}

Ergebnis

Spezifikationen

Specification
CSS Functions and Mixins Module
# funcdef-function-type

Browser-Kompatibilität

Siehe auch