sin()
Baseline 2023Newly 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 zurückgibt, welcher ein Wert zwischen -1
und 1
ist. Die Funktion enthält eine einzelne Berechnung, die entweder auf eine <number>
oder ein <angle>
aufgelöst werden muss, indem das Ergebnis des Arguments als Bogenmaß interpretiert wird. Das heißt, 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 #666;
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 #666;
background-color: #f66;
transform: translateX(calc(cos(0deg) * var(--radius)))
translateY(calc(sin(0deg) * var(--radius) * -1));
}
Syntax
/* 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
Rückgabewert
Der Sinus eines angle
wird immer eine Zahl zwischen −1
und 1
zurückgeben.
- Wenn
angle
infinity
,-infinity
oderNaN
ist, ist das ErgebnisNaN
. - Wenn
angle
0⁻
ist, ist das Ergebnis0⁻
.
Formale Syntax
Beispiele
Ändern der Boxgrößen
In diesem Beispiel wird sin(30deg)
den Wert 0.5
zurückgeben, wodurch die Box eine Breite und Höhe von 50px
hat.
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.
div {
animation-name: myAnimation;
animation-duration: calc(sin(0.25turn) * 1s);
}
Spezifikationen
Specification |
---|
CSS Values and Units Module Level 4 # trig-funcs |