Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

sin()

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 sin() CSS-Funktion ist eine trigonometrische Funktion, die den Sinus einer Zahl berechnet, was einen Wert zwischen -1 und 1 ergibt. Die Funktion enthält eine einzige Berechnung, die entweder zu einer <number> oder zu einem <angle> aufgelöst werden muss, indem das Ergebnis des Arguments als Bogenmaß interpretiert wird. Das bedeutet, sin(45deg), sin(0.125turn) und sin(3.14159 / 4) stellen alle denselben Wert dar, ungefähr 0.707.

Probieren Sie es aus

transform: translateX(calc(cos(0deg) * 140px))
  translateY(calc(sin(0deg) * -140px));
transform: translateX(calc(cos(90deg) * 140px))
  translateY(calc(sin(90deg) * -140px));
transform: translateX(calc(cos(135deg) * 140px))
  translateY(calc(sin(135deg) * -140px));
transform: translateX(calc(cos(180deg) * 140px))
  translateY(calc(sin(180deg) * -140px));
transform: translateX(calc(cos(-45deg) * 140px))
  translateY(calc(sin(-45deg) * -140px));
<div class="circle">
  <span class="dot" id="example-element"></span>
</div>
:root {
  --radius: 140px;
  --dot-size: 10px;
}
.circle {
  display: grid;
  place-content: center;
  margin: 0 auto;
  width: calc(var(--radius) * 2);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid #666666;
  background-image:
    radial-gradient(black var(--dot-size), transparent var(--dot-size)),
    linear-gradient(135deg, blue, deepskyblue, lightgreen, lavender, honeydew);
}
.dot {
  display: block;
  width: var(--dot-size);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid #666666;
  background-color: #ff6666;
  transform: translateX(calc(cos(0deg) * var(--radius)))
    translateY(calc(sin(0deg) * var(--radius) * -1));
}

Syntax

css
/* Single <angle> values */
width: calc(100px * sin(45deg));
width: calc(100px * sin(0.25turn));
width: calc(100px * sin(1.0471967rad));

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

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

Parameter

Die Funktion sin(angle) akzeptiert nur einen Wert als Parameter.

angle

Eine Berechnung, die zu einer <number> oder einem <angle> aufgelöst wird. Bei der Angabe von zahlenlosen Einheiten werden diese als Anzahl der Bogenmaße interpretiert, die ein <angle> darstellen.

Rückgabewert

Der Sinus eines angle gibt immer eine Zahl zwischen −1 und 1 zurück.

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

Formale Syntax

<sin()> = 
sin( <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

Ändern der Box-Größen

In diesem Beispiel wird sin(30deg) 0.5 zurückgeben, was die Box 50px breit und 50px hoch macht.

css
div {
  background-color: red;
  width: calc(sin(30deg) * 100px);
  height: calc(sin(30deg) * 100px);
}

Steuerung der Animationsdauer

Ein weiterer Anwendungsfall ist die Steuerung der animation-duration, indem die Dauer basierend auf dem Sinuswert reduziert wird. In diesem Fall wird die Animationsdauer 1s betragen.

css
div {
  animation-name: myAnimation;
  animation-duration: calc(sin(0.25turn) * 1s);
}

Spezifikationen

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

Browser-Kompatibilität

Siehe auch