Signatur
Beschreibung
Die schreibgeschützte Eigenschaft availHeight des Screen-Objekts (erreichbar über window.screen) gibt die vertikale Größe des Bildschirmbereichs zurück, den Anwendungsfenster tatsächlich belegen können. Anders als screen.height werden dabei Bereiche abgezogen, die das Betriebssystem dauerhaft beansprucht, etwa die Windows-Taskleiste, die macOS-Menüleiste oder das Dock.
Der Wert wird in CSS-Pixeln angegeben, nicht in physischen Gerätepixeln. Auf hochauflösenden Displays (z. B. mit devicePixelRatio 2) ist der Wert also kleiner als die physische Auflösung. Auch der Browser-Zoom kann den Wert je nach Browser beeinflussen.
Typische Einsatzgebiete sind die Größen- und Positionsberechnung von Pop-up-Fenstern mit window.open(), die maximale Fenstergröße bei window.resizeTo() sowie statistische Auswertungen. Für responsives Layout innerhalb der Seite ist availHeight dagegen ungeeignet: Nimm dafür window.innerHeight, CSS-Media-Queries oder window.visualViewport.
Rückgabewert
screen.height.Beispiele
Verfügbare Höhe mit der Gesamthöhe vergleichen
const { height, availHeight } = window.screen;
const reserviert = height - availHeight;
console.log(`Bildschirmhöhe: ${height}px`);
console.log(`Verfügbar: ${availHeight}px`);
console.log(`Von Systemleisten belegt: ${reserviert}px`);
Pop-up vertikal zentriert und passend groß öffnen
const openCenteredPopup = (url, width = 600, height = 700) => {
const { availWidth, availHeight } = window.screen;
// Höhe auf den verfügbaren Platz begrenzen
const h = Math.min(height, availHeight - 40);
const w = Math.min(width, availWidth - 40);
const left = Math.round((availWidth - w) / 2);
const top = Math.round((availHeight - h) / 2);
return window.open(url, 'login', `width=${w},height=${h},left=${left},top=${top}`);
};
openCenteredPopup('https://example.com/login');
Physische Pixel näherungsweise berechnen
const availPhysisch = Math.round(screen.availHeight * window.devicePixelRatio);
console.log(`CSS-Pixel: ${screen.availHeight}, physische Pixel: ${availPhysisch}`);
// Wichtig · Fallstricke
- Nicht für Layout verwenden:
availHeightbeschreibt den Bildschirm, nicht das Browserfenster. Für die sichtbare Seitenhöhewindow.innerHeightodervisualViewport.heightnutzen. - Mehrere Monitore: Der Wert bezieht sich auf den Bildschirm, auf dem sich das Fenster gerade befindet. Wird das Fenster verschoben, kann er sich ändern. Für Multi-Monitor-Szenarien gibt es die
Window Management API(window.getScreenDetails(), derzeit nur in Chromium-Browsern). - Mobilgeräte: Hier entspricht
availHeightoft ganz oder fastscreen.height. Status- und Navigationsleisten werden je nach Browser uneinheitlich abgezogen. - Datenschutz: Bildschirmwerte gehören zum Browser-Fingerprinting. Firefox mit
privacy.resistFingerprintingund der Tor-Browser liefern deshalb absichtlich verfälschte Werte, etwa die Fenstergröße. - Die Eigenschaft ist schreibgeschützt. Eine Zuweisung wird ohne Fehlermeldung ignoriert.
- Wird in allen gängigen Browsern seit langer Zeit unterstützt.