Свойство CSS min-width
Используйте свойство CSS min-width, чтобы задать минимальную ширину области содержимого элемента. Значения и примеры.
Свойство min-width задаёт минимальную ширину элемента. Оно не позволяет значению свойства width сжиматься ниже указанного предела — как бы мало ни становилось доступное пространство.
На этой странице описано, что делает min-width, как оно взаимодействует со свойствами width и max-width, какие значения принимает (включая ключевые слова min-content/max-content/fit-content), а также типичная проблема с Flexbox, которую решает min-width.
Как min-width взаимодействует с width и max-width
Когда вы используете min-width вместе со свойствами width и max-width, min-width выступает нижней границей. Браузер вычисляет ширину, а затем ограничивает её диапазоном min-width … max-width:
- Если
widthменьшеmin-width, элемент расширяется доmin-width. - Если
widthбольшеmax-width, элемент сужается доmax-width.
Иными словами, min-width выигрывает у меньшего width, а max-width выигрывает у большего min-width — при конфликте min-width всегда имеет приоритет. Именно это делает элементы читаемыми при сохранении адаптивности: элемент может расширяться на широких экранах, но никогда не сжимается до нечитаемого размера.
Распространённый практический случай — предотвратить чрезмерное сужение столбца, карточки или кнопки внутри макета на основе Flexbox или сетки, где дочерние элементы иначе сжимались бы.
Отрицательные длины недопустимы — min-width принимает только 0 или положительную длину/процент.
| Начальное значение | 0 |
|---|---|
| Применяется к | Всем элементам, кроме строчных незамещаемых элементов, строк таблицы и групп строк. |
| Наследуется | Нет. |
| Анимируется | Да. Ширина поддаётся анимации. |
| Версия | CSS2 |
| DOM Syntax | object.style.minWidth = "200px"; |
Синтаксис
min-width: <length> | <percentage> | min-content | max-content | fit-content | auto | initial | inherit;Свойство принимает CSS-длину (px, pt, em, rem и т. д.), процент от ширины содержащего блока или одно из ключевых слов встроенного размера, описанных в таблице Значения ниже.
Примеры
Значение в процентах
Если min-width задан в процентах, он вычисляется относительно ширины содержащего блока. Здесь width: 10px переопределяется, потому что min-width: 70% больше, и элемент расширяется до 70% родительского:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Title of the document</title>
<style>
div {
width: 10px;
min-width: 70%;
background-color: #1c87c9;
color: #ffffff
}
</style>
</head>
<body>
<div>The min-width of this text is defined as 70%.</div>
</body>
</html>Результат

Фиксированное значение длины
В этом примере элементу типа inline-block задаётся min-width: 10cm. Он сравнивается с обычным span, у которого min-width: 0, что наглядно показывает, как минимальная граница заставляет второй блок оставаться шириной не менее 10 см, даже если текст короткий:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Title of the document</title>
<style>
span {
background-color: #ccc;
min-width: 0;
}
.example {
min-width: 10cm;
display: inline-block;
}
</style>
</head>
<body>
<h2>Min-width property example</h2>
<h3>Min-width: 0:</h3>
<span>Minimum width is set to 0.</span>
<h3>min-width: 10cm:</h3>
<span class="example">Minimum width is set to 10cm.</span>
</body>
</html>Проблема Flexbox и min-width: 0
По умолчанию flex-элемент не может сжиматься меньше размера своего содержимого — его подразумеваемое значение min-width равно auto, а не 0. Именно поэтому длинные слова, блоки кода или элементы <pre> внутри flex-контейнера могут выходить за границы и растягивать весь макет вместо переноса или прокрутки.
Решение — явно задать min-width: 0 для flex-элемента, чтобы он мог сжиматься меньше своего содержимого:
.flex-item {
min-width: 0; /* allow this item to shrink below its content width */
overflow: hidden; /* or use overflow-x: auto for scrollable content */
}Подробнее об управлении поведением сжатого содержимого читайте в overflow и flex.
Значения
| Значение | Описание | Пример |
|---|---|---|
length | Задаёт минимальную ширину в px, pt, cm, em и т. д. Значение по умолчанию — 0. | Пример » |
% | Задаёт минимальную ширину в процентах от ширины содержащего элемента. | Пример » |
min-content | Наименьшая ширина, при которой содержимое не переполняется (например, длина самого длинного слова). | |
max-content | Ширина, которую занимало бы содержимое без переноса строк. | |
fit-content | Использует доступное пространство, но не больше max-content. | |
auto | Значение по умолчанию — для большинства элементов равно 0, для flex-элементов — размеру содержимого. | |
initial | Устанавливает свойство в значение по умолчанию (0). | Пример » |
inherit | Наследует значение свойства от родительского элемента. |
Связанные свойства
width— задаёт предпочтительную ширину, которую ограничиваетmin-width.max-width— задаёт верхнюю границу диапазона ширины.min-height— вертикальный аналогmin-width.box-sizing— определяет, учитываются ли padding и border при вычислении ширины.