Spec-Zone.ru › CSS

hypot()

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

Новое доступно

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

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

Функция hypot() CSS функция является показательной функцией, которая возвращает квадратный корень суммы квадратов своих параметров.

В то время как pow() и sqrt() работают только с безразмерными числами, hypot() принимает значения с единицами измерения, но они все должны иметь одинаковый тип.

Синтаксис

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

Параметры

Функция hypot(x [, ...]#) принимает один или несколько разделенных запятыми вычислений в качестве параметров.

x, x2, ..., xN

Вычисление, которое разрешается до <number>, <dimension> или <percentage>.

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

Возвращает <number>, <dimension> или <percentage> (в зависимости от входных данных), который является квадратным корнем из суммы квадратов своих параметров.

  • Если любой из входных данных является infinite, результат +∞.
  • Если предоставлен единственный параметр, результат — абсолютное значение его входного значения. hypot(2em) и hypot(-2em) оба разрешаются до 2em.

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

<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

Примеры

Размеры, основанные на функции hypot

Этот пример демонстрирует, как использовать функцию hypot() для расчета размеров.

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

Здесь мы используем CSS пользовательские свойства для определения размеров, которые будут использоваться. Сначала мы объявляем первый размер (--size-0) который затем используется для вычисления других размеров.

  • --size-1 рассчитывается с помощью гипотенузы --size-0 (100px). Это принимает квадратное значение и, поскольку другого значения нет, возвращает квадратный корень из значения, что приводит к 100px.
  • --size-2 рассчитывается с помощью гипотенузы --size-0 (100px), дважды. Это возводит значение в квадрат (100px * 100px = 10000px2) и добавляет его к квадрату --size-0 снова (10000px2 + 10000px2 = 20000px2) и возвращает квадратный корень из суммы (√(20000px2)), что составляет 141,42px.
  • --size-3 рассчитывается с помощью гипотенузы --size-0 * 1,5 (150px) и --size-0 * 2 (200px). Результатом является квадратный корень из суммы их квадратов: значения возводятся в квадрат (22500px2 и 40000px2) и складываются (62500px2), а сумма извлекается из квадратного корня (√(62500px2)), что составляет 250px.
: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 */
}

Затем размеры применяются как значения width и height селекторов.

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

Результат

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

Спецификация
CSS Значения и единицы Модуль 4 уровня
# exponent-funcs

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
hypot 120 120 118 106 15.4 120 118 80 15.4 25.0 120

См. также

  • pow()
  • sqrt()
  • log()
  • exp()

© 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/hypot

Spec-Zone.ru

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