CSS-свойствоВ стандарте

CSS max-width — синтаксис и примеры

CSS-свойство max-width: назначение, рабочее значение, влияние на раскладку или отрисовку, ошибки и поддержка браузерами.

Практический смысл

«max-width» рассматривается не как изолированный синтаксис, а как часть области «размеры и блочная модель». Свойство max-width относится к области «размеры и блочная модель» и участвует в расчёте блочной модели с учётом режима письма, ограничений min/max и box-sizing. Практический контекст для «max-width» — в сетке с карточками разной высоты; во время проверки измеряйте компонент, а не только весь viewport.

Практическое правило для max-width

Рабочий критерий для «max-width»: проверьте вычисленное значение max-width, наследование и контекст родителя. Если результат «max-width» меняется вместе с посторонним условием, пример ещё не изолирован.

Синтаксис max-width

Синтаксис «max-width» показан на минимальном фрагменте без внешнего фреймворка. Сначала запустите исходный вариант, затем меняйте отмеченную часть.

css
.demo {
  max-width: min(100%, 60rem);
}
Открыть в Playground

Как работает max-width

Свойство max-width относится к области «размеры и блочная модель» и участвует в расчёте блочной модели с учётом режима письма, ограничений min/max и box-sizing. Для «max-width» проверьте две контрольные точки — перестроение при смене writing-mode и результат при системной тёмной теме: так видно, на каком этапе появляется итоговое поведение этой темы.

Проверка в проекте

  • Проверьте вычисленное значение max-width, наследование и контекст родителя; результат относится непосредственно к «max-width».
  • Проверить длинный текст, пустое значение и отсутствие необязательного ресурса при разборе «max-width».
  • Проверьте «max-width» в сетке с карточками разной высоты через перестроение при смене writing-mode и запишите наблюдаемое изменение.
Выбор конструкции

Выбор «max-width» оправдан, если задача относится к области «размеры и блочная модель», а риск «изолированная декларация max-width без связанных ограничений может дать другой результат в реальном компоненте» исключён проверкой. Для «max-width» сравнивайте не внешний вид, а результат для пользователя.

Практика с max-width

Проверьте «max-width» в рабочем фрагменте интерфейса с длинным текстом, клавиатурным управлением и узким экраном. Отдельная проверка для «max-width»: проверьте вычисленное значение max-width, наследование и контекст родителя.

размеры и блочная модельmax-width

Сценарий: в сетке с карточками разной высоты.

Ошибки при работе с max-width

01

Устойчивость

Изолированная декларация max-width без связанных ограничений может дать другой результат в реальном компоненте — это предметный риск для «max-width».

02

Доступность

Подмена семантики визуально похожим div или span при использовании «max-width».

03

Каскад

Непредсказуемое наследование значения из внешнего компонента; для «max-width» проверьте это отдельно.

Поддержка max-width

Для «max-width» таблица собрана из закреплённой версии MDN Browser Compatibility Data. Указанная версия браузера показывает первое заявленное появление базовой поддержки «max-width»; окончательное решение принимайте по аудитории конкретного проекта.

Chromeс версии 1Edgeс версии 12Firefoxс версии 1Safariс версии 1

Спецификация: источник 1.

Вопросы о max-width

Как понять, что «max-width» выбрано правильно?

«max-width» выбрано правильно, когда оно решает задачу «задавать внешние или внутренние размеры и управлять местом для содержимого», сохраняет результат в сетке с карточками разной высоты и проходит предметную проверку: проверьте вычисленное значение max-width, наследование и контекст родителя.

Нужен ли запасной вариант для «max-width»?

Запасной вариант для «max-width» нужен, если целевой браузер или режим не обеспечивает выбранное поведение. Без улучшения «max-width» должно сохранять смысл, содержимое и основное действие.

Спецификации и источники

Синтаксис и статус проверяются по HTML Living Standard, спецификациям CSS и MDN Browser Compatibility Data. Примеры и объяснения подготовлены для этого сервиса.