hypot()

Baseline 2023
Newly available

Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Die hypot() CSS Funktion ist eine exponentielle Funktion, die die Quadratwurzel der Summe der Quadrate ihrer Parameter liefert.

Während pow() und sqrt() nur mit einheitslosen Zahlen arbeiten, akzeptiert hypot() Werte mit Einheiten, jedoch müssen alle denselben Typ haben.

Syntax

css
/* A <number> value */
width: hypot(2em); /* 2em */
width: hypot(3em, 4em); /* 5em */
width: hypot(30px, 40px); /* 50px */
width: hypot(48px, 64px); /* 80px */
width: hypot(3px, 4px, 5px); /* 7.0710678118654755px */

Parameter

Die Funktion hypot(x [, ...]#) akzeptiert eine oder mehrere durch Kommas getrennte Berechnungen als Parameter.

x, x2, ..., xN

Eine Berechnung, die zu einem <number>, <dimension> oder <percentage> führt.

Rückgabewert

Gibt ein <number>, <dimension> oder <percentage> zurück (basierend auf den Eingaben), welches die Quadratwurzel der Summe der Quadrate seiner Parameter ist.

  • Wenn einer der Eingabewerte infinite ist, lautet das Ergebnis +∞.
  • Wenn ein einziger Parameter bereitgestellt wird, ist das Ergebnis der Absolutwert seines Eingabewertes. hypot(2em) und hypot(-2em) lösen beide zu 2em auf.

Formale Syntax

<hypot()> = 
hypot( <calc-sum># )

<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*

<calc-product> =
<calc-value> [ [ '*' | '/' ] <calc-value> ]*

<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )

<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN

Beispiele

Größen basierend auf der hypot-Funktion

Dieses Beispiel zeigt, wie die hypot()-Funktion zur Berechnung von Größen verwendet werden kann.

HTML

html
<div class="boxes">
  <div class="box">100px</div>
  <div class="box one">100px</div>
  <div class="box two">141.42px</div>
  <div class="box three">250px</div>
</div>

CSS

Hier verwenden wir CSS Custom Properties, um die zu verwendenden Größen zu definieren. Zuerst deklarieren wir die erste Größe (--size-0), die dann zur Berechnung der anderen Größen verwendet wird.

  • --size-1 wird mit der Hypotenuse von --size-0 (100px) berechnet. Dies nimmt den Quadratwert und, da kein anderer Wert vorhanden ist, ergibt sich die Quadratwurzel des Wertes, was zu 100px führt.
  • --size-2 wird mit der Hypotenuse von --size-0 (100px), zweimal, berechnet. Dies nimmt das Quadrat des Wertes (100px * 100px = 10000px2) und addiert es zu dem Quadrat von --size-0 erneut (10000px2 + 10000px2 = 20000px2) und gibt die Quadratwurzel der Summe zurück (√(20000px2)), was zu 141,42px führt.
  • --size-3 wird mit der Hypotenuse --size-0 * 1.5 (150px) und --size-0 * 2 (200px) berechnet. Das Ergebnis ist die Quadratwurzel der Summe ihrer Quadrate: Die Werte werden quadriert (22500px2 und 40000px2) und zusammenaddiert (62500px2), wobei die Summe quadrativ gezogen wird (√(62500px2)), was 250px ergibt.
css
:root {
  --size-0: 100px;
  --size-1: hypot(var(--size-0)); /*  100px */
  --size-2: hypot(var(--size-0), var(--size-0)); /*  141.42px */
  --size-3: hypot(
    calc(var(--size-0) * 1.5),
    calc(var(--size-0) * 2)
  ); /*  250px */
}

Die Größen werden dann als width und height Werte der Selektoren angewendet.

css
.one {
  width: var(--size-1);
  height: var(--size-1);
}
.two {
  width: var(--size-2);
  height: var(--size-2);
}
.three {
  width: var(--size-3);
  height: var(--size-3);
}

Ergebnis

Spezifikationen

Specification
CSS Values and Units Module Level 4
# exponent-funcs

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
hypot()

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch