round()
Базовая версия 2024
Новое
С мая 2024 года эта функция работает на последних версиях устройств и браузеров. Возможно, она не будет работать на старых устройствах или браузерах.
Функция round() CSS функция возвращает округленное число на основе выбранной стратегии округления.
Авторы должны использовать пользовательское свойство CSS (например, --my-property) для значения округления, интервала или обоих; использование функции round() избыточно, если эти значения известны.
Синтаксис
width: round(var(--width), 50px); width: round(up, 101px, var(--interval)); width: round(down, var(--height), var(--interval)); margin: round(to-zero, -105px, 10px);
Параметры
Функция round(<rounding-strategy>, valueToRound, roundingInterval) задает необязательную стратегию округления, значение (или математическое выражение) для округления и интервал округления (или математическое выражение). Значение valueToRound округляется в соответствии со стратегией округления до ближайшего целого кратного roundingInterval.
<rounding-strategy>-
Стратегия округления. Может принимать следующие значения:
up-
Округлить
valueToRoundвверх до ближайшего целого кратногоroundingInterval(если значение отрицательное, оно станет "более положительным"). Эквивалентно методу JavaScriptMath.ceil(). down-
Округлить
valueToRoundвниз до ближайшего целого кратногоroundingInterval(если значение отрицательное, оно станет "более отрицательным"). Эквивалентно методу JavaScriptMath.floor(). -
nearest(по умолчанию) -
Округлить
valueToRoundдо ближайшего целого кратногоroundingInterval, которое может быть выше или ниже значения. ЕслиvalueToRoundнаходится ровно посередине между целями округления выше и ниже (ни то, ни другое не является "ближайшим"), оно будет округлено вверх. Эквивалентно JavaScriptMath.round(). to-zero-
Округлить
valueToRoundдо ближайшего целого кратногоroundingInterval, более близкого к нулю (положительное число уменьшится, а отрицательное станет "менее отрицательным"). Эквивалентно методу JavaScriptMath.trunc().
valueToRound-
Значение, которое должно быть округлено. Должно быть
<number>,<dimension>или<percentage>, или математическое выражение, которое разрешается в одно из этих значений. roundingInterval-
Интервал округления. Это
<number>,<dimension>или<percentage>, или математическое выражение, которое разрешается в одно из этих значений.
Значение возвращаемого значения
Значение valueToRound, округлённое до ближайшего меньшего или большего целого кратного roundingInterval, в зависимости от rounding strategy.
-
Если
roundingIntervalравно 0, результат —NaN. -
Если
valueToRoundиroundingIntervalобаinfinite, результат —NaN. -
Если
valueToRoundбесконечно, ноroundingIntervalконечно, результат — тот жеinfinity. -
Если
valueToRoundконечно, ноroundingIntervalбесконечно, результат зависит от стратегии округления и знакаA:-
up— ЕслиvalueToRoundположительное (не равно нулю), возвращается+∞. ЕслиvalueToRoundравно0⁺, возвращается0⁺. В противном случае возвращается0⁻. -
down— ЕслиvalueToRoundотрицательное (не равно нулю), возвращается−∞. ЕслиvalueToRoundравно0⁻, возвращается0⁻. В противном случае возвращается0⁺. -
nearest,to-zero— ЕслиvalueToRoundположительное или0⁺, возвращается0⁺. В противном случае возвращается0⁻.
-
-
Вычисления аргументов могут привести к
<number>,<dimension>или<percentage>, но должны иметь одинаковый тип, в противном случае функция недействительна; результат будет иметь тот же тип, что и аргументы. -
Если
valueToRoundточно равно целому кратномуroundingInterval,round()разрешается точно какvalueToRound(сохраняя, если применимо, является лиvalueToRound0⁻или0⁺). В противном случае существует два целых кратныхroundingInterval, которые потенциально являются наиболее «близкими» кvalueToRound, нижнийroundingInterval, который ближе к−∞, и верхнийroundingInterval, который ближе к+∞.
Формальный синтаксис
<round()> =
round( <rounding-strategy>? , <calc-sum> , <calc-sum>? )
<rounding-strategy> =
nearest |
up |
down |
to-zero
<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
Примеры
Округление положительных значений
Этот пример демонстрирует, как стратегии округления функции round() работают для положительных значений.
Из пяти блоков ниже, функция round() используется для установки высоты четырёх последних. Значение, которое нужно округлить, находится между 100 px и 125 px в каждом случае, а значение округления — 25px во всех случаях. Поэтому высота блоков либо округляется до 125 px, либо до 100 px.
HTML
HTML определяет 5 элементов div, которые будут отображаться как блоки с помощью CSS. Элементы содержат текст, указывающий на стратегию округления, начальное значение и ожидаемую конечную высоту блока (в скобках).
<div class="box box-1">height: 100px</div> <div class="box box-2">up 101px (125px)</div> <div class="box box-3">down 122px (100px)</div> <div class="box box-4">to-zero 120px (100px)</div> <div class="box box-5">nearest 117px (125px)</div>
CSS
CSS, применяемый ко всем блокам, показан ниже. Обратите внимание, что мы применяем пользовательское свойство CSS с именем --rounding-interval, которое мы будем использовать для интервала округления.
div.box {
width: 100px;
height: 100px;
background: lightblue;
padding: 5px;
--rounding-interval: 25px;
}
Первый блок слева не получает специальных правил CSS, поэтому его высота по умолчанию будет 100px. CSS для div двух, трёх и четырёх блоков показан ниже, которые округляют, соответственно, вверх, вниз и до нуля.
div.box-2 {
height: round(up, 101px, var(--rounding-interval));
}
div.box-3 {
height: round(down, 122px, var(--rounding-interval));
}
div.box-4 {
height: round(to-zero, 120px, var(--rounding-interval));
}
Обратите внимание, как выше мы указываем интервал округления с помощью var() и пользовательского свойства CSS --rounding-interval.
Последний блок установлен без указания стратегии округления, и поэтому по умолчанию используется nearest. В этом случае ближайший интервал к 117 px — 125px, поэтому он будет округлен вверх. Просто для сравнения, здесь мы указали жёсткие значения для значения округления и интервала. Хотя это разрешено, обычно этого не делают, потому что нет смысла округлять число, когда вы уже знаете, каким должен быть результат.
div.box-5 {
height: round(117px, 25px);
}
Результат
Если браузер поддерживает функцию CSS round(), вы должны увидеть пять столбцов с высотами, округленными в соответствии с содержащимся в них текстом.
Спецификации
| Спецификация |
|---|
| CSS Values and Units Module Level 4 # funcdef-round |
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
round |
125 | 125 | 118 | 111 | 15.4 | 125 | 118 | 83 | 15.4 | 27.0 | 125 |
См. также
© 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/round