CSS-функция `minmax()`
Базовая поддержка Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с октября 2017 года.
minmax() — это функция CSS, которая задаёт диапазон размеров от min до max включительно. Она используется в CSS-сетках.
Попробуйте
grid-template-columns: minmax(20px, auto) 1fr 1fr;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
grid-template-columns: minmax(2ch, 10ch) 1fr 1fr;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One. This column has more text in it.</div>
<div>Two</div>
<div>Three</div>
<div>Four</div>
<div>Five</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-gap: 10px;
width: 250px;
}
#example-element > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
text-align: left;
}
Синтаксис
/* <inflexible-breadth>, <track-breadth> values */ minmax(200px, 1fr) minmax(400px, 50%) minmax(30%, 300px) minmax(100px, max-content) minmax(min-content, 400px) minmax(max-content, auto) minmax(auto, 300px) minmax(min-content, auto) /* <fixed-breadth>, <track-breadth> values */ minmax(200px, 1fr) minmax(30%, 300px) minmax(400px, 50%) minmax(50%, min-content) minmax(300px, max-content) minmax(200px, auto) /* <inflexible-breadth>, <fixed-breadth> values */ minmax(400px, 50%) minmax(30%, 300px) minmax(min-content, 200px) minmax(max-content, 200px) minmax(auto, 300px)
Функция принимает два параметра: min и max.
Каждый параметр может быть значением типа <length>, <percentage> или одним из ключевых слов: max-content, min-content или auto.
Второй параметр max также принимает значения <flex>. (Эти единицы fr можно использовать только для max; для min они недопустимы.)
Если max < min, то max игнорируется, а minmax(min,max) считается равным min.
Значения
-
<length> - Неотрицательная длина.
-
<percentage> - Неотрицательный процент относительно строчного размера контейнера сетки для столбцов сетки и блочного размера контейнера сетки для строк сетки. Если размер контейнера сетки зависит от размера его дорожек, то
<percentage>следует считать значениемauto. Пользовательский агент может скорректировать вклад дорожки во внутренний размер контейнера сетки и увеличить окончательный размер дорожки на минимальную величину, необходимую для учёта процента. -
flex - Неотрицательная размерность с единицей
fr, задающая коэффициент гибкости дорожки. Каждая дорожка размером<flex>получает долю оставшегося пространства пропорционально своему коэффициенту гибкости. -
max-content - Обозначает наибольший вклад max-content элементов сетки, занимающих дорожку сетки.
-
min-content - Обозначает наибольший вклад min-content элементов сетки, занимающих дорожку сетки.
-
auto - В качестве
minобозначает наименьший размер (заданный свойствамиmin-width/min-height) элементов сетки, занимающих дорожку сетки. В качествеmaxон идентиченmax-content. Однако, в отличие отmax-content, он позволяет расширять дорожку с помощью значений свойствalign-contentиjustify-content, таких какnormalиstretch.
Формальный синтаксис
<minmax()> = minmax( [ <length-percentage> | min-content | max-content | auto ] , [ <length-percentage> | <flex> | min-content | max-content | auto ] ) <length-percentage> = <length> | <percentage>
Свойства CSS
Функцию minmax() можно использовать в:
Примеры
CSS
#container {
display: grid;
grid-template-columns: minmax(min-content, 300px) minmax(200px, 1fr) 150px;
grid-gap: 5px;
box-sizing: border-box;
height: 200px;
width: 100%;
background-color: #8cffa0;
padding: 10px;
}
#container > div {
background-color: #8ca0ff;
padding: 5px;
}
HTML
<div id="container"> <div>Item as wide as the content, but at most 300 pixels.</div> <div>Item with flexible width but a minimum of 200 pixels.</div> <div>Inflexible item of 150 pixels width.</div> </div>
Результат
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
minmax |
57 |
16 |
52 |
44 |
10.1 |
57 |
52 |
43 |
10.3 |
6.0 |
57 |
10.3 |
См. также
- Основы раскладки сетки: изменение размера дорожек с помощью minmax()
- CSS-сетки, логические значения и режимы письма
- Видео: Знакомство с minmax()
© 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/minmax