Функция CSS `min()`
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с июля 2020 года.
min() — это CSS-функция, которая позволяет установить наименьшее (наиболее отрицательное) значение из списка выражений, разделённых запятыми, в качестве значения свойства CSS. Функцию min() можно использовать везде, где допустимы <length>, <frequency>, <angle>, <time>, <percentage>, <number> или <integer>.
Попробуйте
width: min(50vw, 200px);
width: min(100vw, 4000px);
width: min(150vw, 100px);
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
<img
alt="Firefox logo"
class="logo"
src="/shared-assets/images/examples/firefox-logo.svg" />
</div>
</section>
В первом примере выше ширина будет не более 200px, но может быть меньше, если ширина области просмотра меньше 400px (в этом случае 1vw будет равен 4px, а 50vw — 200px). В этом приёме для задания фиксированного максимального значения свойства используется абсолютная единица, а относительная единица позволяет уменьшать значение для более узких областей просмотра.
Синтаксис
min(1, 2, 3) min(1px, 2px, 3px)
Параметры
Функция min() принимает в качестве параметра одно или несколько выражений, разделённых запятыми; в качестве значения используется результат вычисления наименьшего (наиболее отрицательного) выражения.
Выражения могут быть математическими (с использованием арифметических операторов), литеральными значениями или другими выражениями, например attr(), которые вычисляются в допустимый тип аргумента (например, <length>).
При желании можно использовать в выражении разные единицы измерения для каждого значения. При необходимости также можно использовать скобки, чтобы задать порядок вычислений.
Примечания
- Математические выражения с процентными значениями ширины и высоты для столбцов таблиц, групп столбцов таблиц, строк таблиц, групп строк таблиц и ячеек таблиц как в таблицах с автоматической, так и с фиксированной раскладкой могут рассматриваться так, как если бы было указано
auto. - Допускается вкладывать
max()и другие функцииmin()в качестве значений выражений. Выражения представляют собой полноценные математические выражения, поэтому можно использовать прямое сложение, вычитание, умножение и деление без самой функцииcalc(). - Выражение может содержать значения, объединённые операторами сложения (
+), вычитания (-), умножения (*) и деления (/), с соблюдением стандартных правил приоритета операторов. Не забудьте поставить пробелы по обе стороны от операндов+и-. - Можно (и часто необходимо) объединять значения
min()иmax()или использоватьmin()внутри функцииclamp()илиcalc(). - Если необходимо применить несколько ограничений, можно указать более двух аргументов.
Формальный синтаксис
<min()> = min( <calc-sum># ) <calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]* <calc-product> = <calc-value> [ '*' <calc-value> | '/' <number> ]* <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> ) <calc-constant> = e | pi | infinity | -infinity | NaN
Доступность
Используя min() для задания максимального размера шрифта, убедитесь, что текст можно увеличить как минимум на 200% для удобства чтения (без вспомогательных технологий, например функции масштабирования).
- MDN: пояснения к руководству WCAG 1.4 Понимание критерия успеха 1.4.4: изменение размера текста | WAI | W3C
Примеры
Задание максимального размера для подписи и поля ввода
Ещё один вариант использования min() — задание максимального размера адаптивных элементов формы, позволяющее уменьшать ширину подписей и полей ввода по мере уменьшения ширины формы.
Рассмотрим CSS:
input,
label {
padding: 2px;
box-sizing: border-box;
display: inline-block;
width: min(40%, 400px);
background-color: pink;
}
form {
margin: 4px;
border: 1px solid black;
padding: 4px;
}
В этом примере ширина самой формы, а также её внешних отступов, рамки и внутренних отступов составляет 100% от ширины родительского элемента. Мы задаём для поля ввода и подписи ширину, равную меньшему из значений: 40% ширины формы за вычетом внутренних отступов или 400px. Иными словами, максимальная ширина подписи и поля ввода составляет 400px. Минимальная ширина равна 40% ширины формы, что на экране умных часов даёт очень маленькое значение.
<form> <label for="misc">Type something:</label> <input type="text" id="misc" name="misc" /> </form>
Спецификации
| Спецификация |
|---|
| Модуль значений и единиц CSS, уровень 4 # funcdef-min |
Совместимость с браузерами
| Настольные устройства | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
min |
79 |
79 |
75 |
66 |
11.1 |
79 |
79 |
57 |
11.3 |
12.0 |
79 |
11.3 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/min