Spec-Zone.ru › CSS

cos()

Базовая версия 2023

Новое

С марта 2023 года эта функция работает на последних версиях устройств и браузеров. Возможно, эта функция не будет работать на старых устройствах или браузерах.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Функция cos() CSS функция — это тригонометрическая функция, возвращающая косинус числа, значение которого находится в диапазоне от -1 до 1. Функция содержит одно вычисление, которое должно привести к значению, являющемуся либо <number>, либо <angle> посредством интерпретации результата аргумента в радианах. То есть, cos(45deg), cos(0.125turn), и cos(3.14159 / 4) представляют одно и то же значение, примерно 0.707.

Синтаксис

/* 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));

Параметры

Функция cos(angle) принимает только одно значение в качестве параметра.

angle

Вычисление, которое приводит к значению <number> или <angle>. При указании чисел без единиц измерения они интерпретируются как число радиан, представляющее <angle>.

Возвращаемое значение

Косинус любого angle всегда возвращает число в диапазоне от −1 до 1.

  • Если angle равно infinity, -infinity, или NaN, результат равен NaN.

Формальный синтаксис

<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

Примеры

Сохранение размера повернутого блока

Функцию cos() можно использовать для сохранения размера повернутого блока.

При вращении элемента с помощью rotate() он выходит за пределы своего начального размера. Для решения этой проблемы мы будем использовать cos() для обновления размера элемента.

Например, если повернуть 100px/100px квадрат 45deg, ромб, который он создаст, будет шире и выше, чем исходный квадрат. Чтобы уменьшить ромб в рамки, выделенные для исходного квадрата, вам нужно будет уменьшить ромб с помощью этой формулы: width = height = 100px * cos(45deg) = 100px * 0.707 = 70.7px. Вам также необходимо скорректировать transform-origin и добавить translate() для исправления позиции:

HTML

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

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;
}

Результат

Спецификации

Спецификация
CSS Values and Units Module Level 4
# trig-funcs

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
cos 111 111 108 97 15.4 111 108 75 15.4 22.0 111

См. также

  • sin()
  • tan()
  • asin()
  • acos()
  • atan()
  • atan2()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/cos

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API