Медиазапросы и точки перелома: адаптация макета под экраны
Коротко: С помощью медиазапросов правила CSS применяются только при определённых условиях, например начиная с некоторой ширины экрана; так страница подстраивается под телефон, планшет и десктоп.
Подробнее: Адаптивная страница хорошо выглядит на любом устройстве. Предпосылка — <meta name="viewport" content="width=device-width, initial-scale=1"> в HTML, чтобы мобильные браузеры использовали реальную ширину.
Подробности
Синтаксис и mobile-first
.card { display: block; } /* по умолчанию: телефон */
@media (min-width: 768px) {
.card { display: flex; gap: 1rem; } /* от планшета */
}
@media (min-width: 1200px) {
.card { max-width: 1100px; } /* от десктопа */
}Mobile-first: сначала пишите макет для малых экранов, затем добавляйте для больших через min-width. Это обычно проще и загружает на телефон меньше лишнего.
Типичные точки перелома
Примерно 640 px (большой телефон), 768 px (планшет), 1024 px (небольшой ноутбук), 1280 px (десктоп). Подбирайте точки перелома по содержимому: где ломается макет? Поставьте точку там. Используйте относительные единицы (rem, %, vw) и clamp() для плавных размеров шрифта: font-size: clamp(1rem, 2.5vw, 1.5rem);.
Другие запросы
prefers-color-scheme: dark: тёмный режим системы.prefers-reduced-motion: reduce: уменьшить анимации (доступность).orientation: landscape,printдля печати.hover: hoverиpointer: coarse: мышь и сенсорное управление.- Контейнерные запросы (
@container) реагируют на размер окружающего элемента, а не окна, идеально для многократно используемых компонентов.
Проверка и подводные камни
Тестируйте с помощью значков устройств в инструментах разработчика браузера (F12) и на реальных устройствах. Избегайте фиксированной ширины в пикселях, горизонтальной прокрутки и слишком маленьких целей нажатия (не менее примерно 44 px). Адаптируйте изображения через max-width: 100% и srcset. Flexbox и Grid многое решают и без медиазапросов (flex-wrap, repeat(auto-fit, minmax(...))).
См. также: WCAG и цветовой контраст