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

View in English Always switch to English

SVGElement: style-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Die schreibgeschützte style-Eigenschaft der SVGElement-Schnittstelle gibt den Inline-style eines Elements in Form eines aktiven CSSStyleProperties-Objekts zurück. Dieses Objekt kann verwendet werden, um die Inline-Stile eines Elements zu erhalten und festzulegen.

Wert

Ein aktives CSSStyleProperties-Objekt.

Hinweis: Frühere Versionen der Spezifikation haben eine CSSStyleDeclaration zurückgegeben (von der CSSStyleProperties abgeleitet ist). Siehe die Tabelle zur Browser-Kompatibilität für Informationen zur Unterstützung durch Browser.

Obwohl die style-Eigenschaft selbst in dem Sinne schreibgeschützt ist, dass Sie das CSSStyleProperties-Objekt nicht ersetzen können, können Sie dennoch direkt der style-Eigenschaft zuweisen, was dem Zuweisen zur cssText-Eigenschaft entspricht. Sie können das CSSStyleProperties-Objekt auch mit den Methoden setProperty() und removeProperty() modifizieren.

Beschreibung

Die Werte der Inline-Stile, die im style-Attribut des Elements festgelegt sind, werden durch entsprechende Eigenschaften des zurückgegebenen CSSStyleProperties-Objekts widergespiegelt.

Hinweis: CSSStyleProperties verfügt über dash-benannte und entsprechende camel-case benannte Eigenschaften für alle vom Browser unterstützten CSS-Eigenschaften (nicht nur jene mit Inline-Stilen). Eigenschaften, die keinen entsprechenden Inline-Stil haben, sind auf "" gesetzt.

Shorthand-CSS-Eigenschaften des Elements werden in ihre entsprechenden Langform-Eigenschaften erweitert. Zum Beispiel würde ein Element mit dem Stil "border-top: 1px solid black" im zurückgegebenen Objekt durch Eigenschaften mit den Namen border-top und borderTop, und die entsprechenden Langform-Eigenschaften border-top-color und borderTopColor, border-top-style und borderTopStyle, sowie border-top-width und borderTopWidth repräsentiert werden.

Die style-Eigenschaft ist schreibgeschützt, was bedeutet, dass es nicht möglich ist, ihr ein CSSStyleProperties-Objekt zuzuweisen. Nichtsdestotrotz ist es möglich, einen Inline-Stil zu setzen, indem direkt eine Zeichenkette zugewiesen wird. In diesem Fall kann die Zeichenkette aus cssText gelesen werden. Die Verwendung von style auf diese Weise wird alle Inline-Stile auf dem Element vollständig überschreiben.

Um einem Element spezifische Stile hinzuzufügen, ohne andere Stilwerte zu verändern, ist es im Allgemeinen vorzuziehen, einzelne Eigenschaften auf dem CSSStyleProperties-Objekt festzulegen. Zum Beispiel können Sie element.style.backgroundColor = "red" schreiben. Eine Stil-Deklaration wird zurückgesetzt, indem sie auf null oder eine leere Zeichenkette gesetzt wird, z.B. element.style.color = null.

Die style-Eigenschaft hat die gleiche Priorität in der CSS-Kaskade wie eine Inline-Stil-Deklaration, die über das style-Attribut gesetzt wurde.

Beispiele

Auflisten von Stilinformationen

Dieses Beispiel demonstriert, wie wir die dash-benannten Eigenschaften von CSSStyleProperties aufzählen können.

HTML

html
<svg
  xmlns="http://www.w3.org/2000/svg"
  viewBox="0 0 250 250"
  width="250"
  height="250">
  <circle
    cx="100"
    cy="100"
    r="50"
    id="circle"
    style="fill: red; stroke: black; stroke-width: 2px;" />
</svg>
<pre id="log"></pre>

JavaScript

Der folgende Code iteriert die aufzählbaren Eigenschaften der CSSStyleProperties und gibt das Ergebnis aus.

js
const element = document.querySelector("circle");
const elementStyle = element.style;

// Loop through all the element's styles using `for...in`
for (const prop in elementStyle) {
  // Check the property belongs to the CSSStyleProperties instance
  // Ensure the property is a numeric index (indicating a dash-named/inline style)
  if (
    Object.hasOwn(elementStyle, prop) &&
    !Number.isNaN(Number.parseInt(prop, 10))
  ) {
    log(
      `${
        elementStyle[prop]
      } = '${elementStyle.getPropertyValue(elementStyle[prop])}'`,
    );
  }
}

Ergebnisse

Das Ergebnis wird unten gezeigt. Beachten Sie, dass nur die Langform-CSS-Eigenschaften des Elements als Werte aufgezählt werden (die Inline-Kurzform-Eigenschaft wird nicht aufgezählt).

Spezifikationen

Specification
CSS Object Model (CSSOM)
# dom-elementcssinlinestyle-style

Browser-Kompatibilität

Siehe auch