cos()

Baseline 2023
Newly available

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

Die cos() CSS Funktion ist eine trigonometrische Funktion, die den Kosinus einer Zahl zurückgibt, welcher einen Wert zwischen -1 und 1 hat. Die Funktion enthält eine einzelne Berechnung, die entweder in einen <number> oder ein <angle> aufgelöst werden muss, indem das Ergebnis des Arguments als Radiant interpretiert wird. Das heißt, cos(45deg), cos(0.125turn) und cos(3.14159 / 4) stellen alle denselben Wert dar, ungefähr 0.707.

Syntax

css
/* Single <angle> values */
width: calc(100px * cos(45deg));
width: calc(100px * cos(0.125turn));
width: calc(100px * cos(0.785398163rad));

/* Single <number> values */
width: calc(100px * cos(63.673));
width: calc(100px * cos(2 * 0.125));

/* Other values */
width: calc(100px * cos(pi));
width: calc(100px * cos(e / 2));

Parameter

Die cos(angle)-Funktion akzeptiert nur einen Wert als ihren Parameter.

angle

Eine Berechnung, die in einen <number> oder ein <angle> aufgelöst wird. Wenn zahlenlose Werte spezifiziert werden, werden diese als Anzahl von Radianten interpretiert und stellen ein <angle> dar.

Rückgabewert

Der Kosinus eines angle wird immer eine Zahl zwischen −1 und 1 ergeben.

  • Wenn angle unendlich, -unendlich oder NaN ist, ist das Ergebnis NaN.

Formale Syntax

<cos()> = 
cos( <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öße eines gedrehten Kastens beibehalten

Die cos()-Funktion kann verwendet werden, um die Größe eines gedrehten Kastens beizubehalten.

Wenn das Element mit rotate() gedreht wird, geht es über seine ursprüngliche Größe hinaus. Um dies zu beheben, verwenden wir cos(), um die Größe des Elements zu aktualisieren.

Wenn Sie zum Beispiel ein 100px/100px Quadrat um 45deg drehen, wird der resultierende Diamant breiter und höher als das ursprüngliche Quadrat sein. Um den Diamanten in die Box zu schrumpfen, die für das ursprüngliche Quadrat vorgesehen ist, müssten Sie den Diamanten mit folgender Formel skalieren: width = height = 100px * cos(45deg) = 100px * 0.707 = 70.7px. Sie müssen auch den transform-origin anpassen und translate() hinzufügen, um die Position zu korrigieren:

HTML

html
<div class="original-square"></div>
<div class="rotated-diamond"></div>
<div class="rotated-scaled-diamond"></div>

CSS

css
div.original-square {
  width: 100px;
  height: 100px;
  background-color: blue;
}
div.rotated-diamond {
  width: 100px;
  height: 100px;
  background-color: red;
  transform: rotate(45deg);
}
div.rotated-scaled-diamond {
  width: calc(100px * cos(45deg));
  height: calc(100px * cos(45deg));
  margin: calc(100px / 4 * cos(45deg));
  transform: rotate(45deg);
  transform-origin: center;
  background-color: green;
}

Ergebnis

Spezifikationen

Specification
CSS Values and Units Module Level 4
# trig-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
cos()

Legend

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

Full support
Full support
No support
No support

Siehe auch