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 property

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 des SVGElement gibt den inline style eines Elements in Form eines lebendigen CSSStyleProperties Objekts zurück. Dieses Objekt kann verwendet werden, um die Inline-Stile eines Elements zu erhalten und zu setzen.

Wert

Ein lebendiges CSSStyleProperties Objekt.

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

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 hat Bindestrich-benannte und entsprechende camel-case benannte Eigenschaften für alle vom Browser unterstützten CSS-Eigenschaften (nicht nur die mit Inline-Stilen). Eigenschaften, die keinen entsprechenden Inline-Stil haben, sind auf "" gesetzt.

Kurzfassung-CSS-Eigenschaften des Elements werden auf 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 sowie die entsprechenden Langform-Eigenschaften border-top-color und borderTopColor, border-top-style und borderTopStyle, und border-top-width und borderTopWidth dargestellt.

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

Um einem Element spezifische Stile hinzuzufügen, ohne andere Stilwerte zu verändern, ist es allgemein vorzuziehen, einzelne Eigenschaften im CSSStyleProperties Objekt zu setzen. 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

Stilinformationen auflisten

Dieses Beispiel zeigt, wie wir die Bindestrich-benannten Eigenschaften von CSSStyleProperties auflisten 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 protokolliert das Ergebnis.

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 ist unten zu sehen. 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