Start · Sprachen · JavaScript · Referenz · CSSStyleProperties.cssFloat

CSSStyleProperties.cssFloat

Eigenschaft

Liest oder setzt den Wert der CSS-Eigenschaft <code>float</code> eines Stilobjekts, z. B. <code>element.style.cssFloat = "left"</code>.

seit JavaScript Baseline: alle Browser (CSSStyleProperties als Int Kategorie: webapi

Signatur

CSSStyleProperties.cssFloat

Beschreibung

Die Eigenschaft cssFloat des Interfaces CSSStyleProperties entspricht der CSS-Eigenschaft float. Da float in älteren ECMAScript-Versionen ein reserviertes Wort war, hat man für den DOM-Zugriff den Namen cssFloat gewählt. Mögliche Werte sind unter anderem "left", "right", "none", "inline-start" und "inline-end".

Man nutzt sie typischerweise über element.style (Inline-Stile) oder über das von getComputedStyle() gelieferte Objekt, das nur gelesen werden kann. Über element.style.cssFloat sieht man nur den Inline-Stil. Werte aus Stylesheets bekommt man so nicht. Den tatsächlich wirksamen Wert liefert getComputedStyle(el).cssFloat.

Moderne Browser erlauben inzwischen auch style.float als Alias. Gleichwertig und am robustesten sind cssFloat oder style.setProperty("float", …) bzw. getPropertyValue("float").

Parameter

Name Typ Default Beschreibung
$value string "" Beim Setzen: gültiger float-Wert wie "left", "right", "none", "inline-start", "inline-end" oder ein globaler Wert ("inherit", "initial", "unset"). Mit einem leeren String entfernt man den Inline-Wert.

Rückgabewert

Typ
string
Beschreibung
Den aktuellen float-Wert als String. Ist bei element.style kein Inline-Wert gesetzt, kommt ein leerer String "" zurück.

Beispiele

Bild per Inline-Stil nach rechts floaten

const img = document.querySelector("img.teaser");
img.style.cssFloat = "right";
img.style.marginLeft = "1rem";
console.log(img.style.cssFloat);
right

Wirksamen Wert aus dem Stylesheet lesen

// CSS: .sidebar { float: left; }
const sidebar = document.querySelector(".sidebar");
console.log(`Inline: "${sidebar.style.cssFloat}"`);
console.log(`Berechnet: "${getComputedStyle(sidebar).cssFloat}"`);
Inline: "" Berechnet: "left"

Float umschalten und wieder entfernen

const box = document.getElementById("infobox");
const toggleFloat = () => {
  box.style.cssFloat = box.style.cssFloat === "left" ? "" : "left";
};
toggleFloat();
console.log(box.style.cssFloat); // "left"
toggleFloat();
console.log(box.style.cssFloat === ""); // Inline-Wert entfernt
left true

Gleichwertige Alternativen mit setProperty

const el = document.createElement("div");
el.style.setProperty("float", "inline-start");
console.log(el.style.cssFloat);
console.log(el.style.getPropertyValue("float"));
inline-start inline-start

// Wichtig · Fallstricke

  • Nur Inline-Werte: element.style.cssFloat liefert keine Werte aus Stylesheets. Dafür braucht man getComputedStyle(), dessen Ergebnis nur gelesen werden kann. Ein Schreibversuch darauf wirft einen NoModificationAllowedError.
  • Ungültige Werte wie "center" werden stillschweigend ignoriert. Es gibt keinen Fehler, der vorherige Wert bleibt einfach bestehen.
  • Altes IE: Internet Explorer bis Version 8 kannte nur styleFloat. In heutigen Browsern spielt das keine Rolle mehr.
  • Den Alias style.float unterstützen erst neuere Browserversionen. Für maximale Kompatibilität nimmt man cssFloat oder setProperty("float", …).
  • Früher hieß das Interface CSSStyleDeclaration. Die Eigenschaft funktioniert unabhängig vom Interface-Namen in allen Browsern.
  • In Flex- und Grid-Containern hat float auf die Kindelemente keine Wirkung. Und wenn ein Element absolut positioniert ist, berechnet sich float zu none.